webpack4+vue2项目使用 sass-embedded 导致的 DockerfIle 构建失败的问题

事情发生的原因

事情一开始很简单,前端项目的 package-lock.json 锁文件在某一git 提交时,取消追踪了。 当然啦,这是本人的杰作,昨天发现,唉~这样是不是不好哎,一查,果然不适合,理论出处

然后我就恢复了 package-lock.json 锁文件的追踪,用这个命令 git add <文件路径> 然后 .gitignore 一改直接提交到生产环境了。 临下班前,想更新一下,这一构建,出了大问题

矮黑,文件不存在,让我感觉到事情远远没有那么简单,赶紧回退,然后草草下班

排查与解决

自己搞半天查半天,本地的构建没问题,真的邪门。 现代科技发达了,赶到了好时候。有啥问题问 AI 就可以。 我把出问题的分支,直接拷贝到了本机wsl里。 然后开始构建,构建卡住了

什么? sass问题,和我lock文件有啥关系,八嘎。 然后把 vue.config.js 里的css配置引入sass-embedded 一注释, npm run build 也好了, 构建镜像也好了docker build -t test-assets . 呦西!

AI解释:Linux 环境里当前安装出来的 sass-embedded 没拿到可执行的 Dart Sass embedded 编译器,于是退到了 pure JS(Pure JavaScript,纯 JavaScript)模式;而 sass --embedded 在 pure JS 模式不可用,所以 Vue CLI(Command Line Interface,命令行接口)构建一直卡住/失败,最终没有生成 assets 目录,Docker 才报:/build-app/assets: not found.

没有追踪 package-lock.json 时,Jenkins 每次 npm install 都会按 package.json 里的版本范围重新解析依赖;你恢复锁文件后,Jenkins 被固定到了你本地这次生成出来的依赖树。这个依赖树里刚好触发了 Linux 下的 sass-embedded 问题。

知道了问题,还是用回单纯的 sass 吧,再次把锁文件提交,把 sass-embedded 依赖一删,ikun!

相关推荐
CodeSheep14 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端14 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
浮生望14 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
90后的晨仔15 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
90后的晨仔15 小时前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端
kyriewen16 小时前
面试官问"这段逻辑为什么这样写"——我才发现,这半年我写的代码,我自己都解释不了
前端·javascript·面试
谢小飞16 小时前
大文件上传很难?学会这招,GB文件秒传不是梦
前端·node.js
程序员黑豆16 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
To_OC17 小时前
别只拿 useRef 绑 DOM 了,搭配 Web Worker 解决页面卡顿才是真的香
前端·react.js·dom
IT_陈寒18 小时前
Vue的响应式让我原地破防,原来问题出在这
前端·人工智能·后端