前端-Mac的m芯片启动Node老项目关于node-sass坑

1,180 阅读2分钟

问题: 老生常谈 :node-sass报错

npm ERR! errno 1
npm ERR! node-sass@4.14.1 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@4.14.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
// 伴随着之类的:
Error: Can't find Python executable "python2.7", you can set the PYTHON env variable.

解决过程(总有适合你的)

1、电脑是M1、node官网下载的node20、npm install 报错 看node-sass兼容性:github.com/sass/node-s… 找对应报错的node版本

image.png

2、安装之后装了n、n切换到14 发现npm install 报错 查询后发现node14适用inter芯片、如果想在M芯片上适用需要额外的帮助 1.去node官网下载node14版本、直接安装会提示M芯片需要额外安装 - 点确定安装后再用n就可以了 2.Mac的M系列芯片在安装16版本之前的node时,需要打开rosetta(我没试过 看到有大佬使用过) 解决方案类似:github.com/nvm-sh/nvm/…

image.png

3、切换到node14之后 发现npm install 报错 1.查找后说切换node-sass镜像源

npm uninstall node-sass
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass

继续install仍然报错 2.使用cnpm 下载了cnpm 报错更多、其中还包括公司的私人组件404等问题

4、使用dart-sass代替node-sass 这个看起来很不错、但是项目中某些组件它也使用了node-sass(可能是这个原因

npm install node-sass@npm:dart-sass -D

继续install仍然报错

4、切换淘宝镜像源

npm install --registry=registry.npm.taobao.org

个人由于项目有公司的私人组件配置了.npmrc 依然报错(但是某些其他项目好使了)

5、由于报错中有python 决定安装 查找后:


npm install -g node-gyp 

npm config set python python2.7

npm config set msvs_version 2017

以前从没安装过、但是依然报错、估计不是这个问题

6、经过无数次尝试后发现 去掉公司私域组件后 不报错、删除rc文件后不报错、说明是组件的问题、查询后单独给node-sass配置

registry=https://xxxxxxxxxxxxxxx/api/npm/dt-npm-public-new/
// 增加↓
sass_binary_site=https://npmmirror.com/mirrors/node-sass/
// 增加↑
package-lock=true

非常顺利

总结:问题一般只有俩。一个node版本、一个设置域 优先解决这俩、其他的再额外尝试。毕竟前端 一个git 一个node应该什么都能跑了