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!

相关推荐
仿生狮子38 分钟前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
Lvan的前端笔记4 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习4 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194055 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风6 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn7 小时前
框架性能优化
前端
回眸&啤酒鸭9 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013849 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员9 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子9 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端