环境:
vue2.6.14
@vue/cli 5.0.4
在本地运行(npm run dev) v-deep是生效的,但是运维编辑脚本,自动部署到 docker时v-deep的样式都失效了
项目采用的是sass预处理, 同时cli采用的是dart-sass
"sass": "^1.34.1",
"sass-loader": "^8.0.2",
首先确认node版本与npm版本
本地node与npm
irving@IrvingdeMacBook-Pro ~ % node -v
v14.19.1
irving@IrvingdeMacBook-Pro ~ % npm -v
6.14.16
irving@IrvingdeMacBook-Pro ~ %
docker上node与npm 版本
node -v
v14.17.1
npm -v
6.14.13
两者虽然有小区别但是同属一个大版本,应该是没有什么问题的。
最后,将sass-loader, vue,vue-template-compiler的版本都对比了一遍,发现是vue与vue-template-compiler 版本不一致导致。 因为有的同事用yarn, 有的用npm,所以没有package-lock.json 或者 yarn-lock.json。
因此在package.json中锁定vue 与 vue-template-compiler版本
原本package.json对应代码
dependencies: {
...
"vue": "^2.6.14",
...