node-scss
是我们常见的依赖包,但是安装的时候, node-scss
总是报错,特地汇总一下,以避免踩坑
npm 源速度慢
由于众所周知的国内网络环境,从国内安装官方源的依赖包会很慢。可以将 npm 源设置成国内镜像源(如淘宝 npm):
|
或者通过 .npmrc
文件设置:
|
binding.node 源无法访问或速度慢
node-sass
除了 npm 部分的代码,还会下载二进制文件 binding.node
,默认源是 github,国内访问较慢, 特殊时期甚至无法访问。我们也可以将其改成国内源:
|
有类似问题的还有 chromedriver, phantomjs, electron 等常见依赖包, 我们可以一并写到.npmrc 中:
|
可以参考npm 安装
node 版本与 node-sass 版本不兼容
node-sass 版本兼容性并不好,老项目中依赖的 node-sass 很可能已经不兼容新的 node,对应版本兼容如下(或参考官方仓库):
NodeJS | Minimum node-sass version | Node Module |
---|---|---|
Node 8 | 4.5.3+ | 57 |
Node 13 | 4.13+ | 79 |
Node 12 | 4.12+ | 72 |
Node 11 | 4.10+ | 67 |
Node 10 | 4.9+ | 64 |
缓存中 binding.node 版本不一致
假如本地 node 版本改了,或在不同机器上运行,node 版本不一致,会报类似错误:
|
这是因为原有 binding.node
缓存跟现 node 版本不一致。按提示 npm rebuild node-sass
或清除缓存重新安装即可。
安装失败后重新安装
安装失败后重新安装,有可能无权限删除已安装内容,此时 npm uninstall node-sass
或手动删掉原目录后再安装即可。
提示没有安装 python、build 失败等
假如拉取 binding.node
失败,node-sass 会尝试在本地编译 binding.node
,过程就需要 python
。假如你遇到前面几种情况解决了,实际上也不会出现在本地构建的情况了,我们就不谈这种失败中失败的情况吧 :-)
- 本文作者: luckyship
- 本文链接: https://luckyship.github.io/2021/03/20/2021-03-20-node-sass-failure/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!