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!

相关推荐
Lank_M11 分钟前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus16 分钟前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写17 分钟前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端
静默回滚18 分钟前
抠图 PNG 缩小再放大,边缘又糊又白是两件事
前端
用户119770794807326 分钟前
GitHub 电商开源项目分享:用 sharp 批量出饰品主图,试了裁剪、细节图和色彩配置文件三个坑
前端·node.js
deli00731 分钟前
地图定位为什么偏了 500 米?GPS 与火星坐标实测
前端
TK泰妞33 分钟前
节日促销前,TikTok 商品视频应该提前准备什么?
前端·人工智能·节日
CCIE-Yasuo1 小时前
网络安全-学习web开发-列表、标签
前端·学习·web安全
小大宇1 小时前
Vue知识点-ElementPlus-06 单选+多选+下拉+日期选择
前端·vue.js·elementui
用户11481867894841 小时前
Nuxt 3 学习版 Demo:跟着做一遍,从跑起来到自己会改
前端