目录
一、引言
通常在git上面拉取代码到本地运行的之前,我们都会先 yarn / npm install 更新包,具体点说:npm 在执行install的时候,会根据项目的package.json信息,现在相应的第三方依赖(package)到node_modules目录。如果在执行 npm install 时没有lock文件,会生成 poackage-lock.json 文件,如果存在lock文件,则根据依赖的版本肯能会更新poackage-lock.json 文件。
但是由于 sass 和 node 的版本不匹配的问题会出现编译失败,版本支持情况如下:
二、报错
原因是当前windows下安装的node版本为16+,而代码中sass依赖的版本为4.14。node-sass官网可供参考。
三、解决办法
1. 使用淘宝镜像 解决node-sass安装失败问题
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
2. 卸载当前node安装 node14,下载链接:node 官网
3. 升级sass 到 6
// 全局安装
npm install -g node-sass@6.0.1
// 检测安装是否成功
node-sass
//若安装失败就重建node-sass依赖
npm rebuild node-sass -g
//查询到版本号说明成功
node-sass -v
接着,修改项目中 package.json 文件中的 node-sass 依赖版本,即刚刚利用node-sass -v查询到的依赖版本(6.0.1),如图保存。
如果项目中有多个 package.json 文件,需要都改,否则会出现以下报错:
最后强制install,然后重起项目即可。
npm install --force
具体参考流程如下:
四、gyp ERR意外
npm install 时有可能出现 gyp ERR 报错,就需要安装编译依赖,官网链接
npm install -g node-gyp
npm install --global --production windows-build-tools
// 若不生效,就卸载node-sass 重装
npm uninstall node-sass
npm install node-sass
如果还不能解决可以参考StackOverflow