知方号

知方号

node

node

安装node-sass有以下几个步骤:

校验本地node_modules中是否已安装node-sass,版本是否一致;如未安装或版本不符,从npm源安装node-sass本体;检测全局缓存和本地中是否有binding.node,如有即跳过安装;没有binding.node则从github下载该二进制文件并将其缓存到全局;假如binding.node下载失败,则尝试本地编译出该文件;将版本信息写到package-lock.json;

由此看到,实际上node-sass依赖了一个二进制文件binding.node,从npm源安装完本体后还会从github下载binding.node。

因此安装node-sass相关的失败原因有以下几种:

原因一: npm源速度慢

由于众所周知的国内网络环境,从国内安装官方源的依赖包会很慢。可以将npm源设置成国内镜像源(如淘宝npm):

npm config set registry https://registry.npm.taobao.org

或者通过.npmrc文件设置:

// .npmrcregistry=https://registry.npm.taobao.org/ 原因二: binding.node源无法访问或速度慢

node-sass除了npm部分的代码,还会下载二进制文件binding.node,默认源是github,国内访问较慢,特殊时期甚至无法访问。我们也可以将其改成国内源:

// linux、mac 下SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass// window 下set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ && npm install node-sass

或者通过.npmrc文件设置:

// .npmrcsass_binary_site=https://npm.taobao.org/mirrors/node-sass/

有类似问题的还有chromedriver,phantomjs,electron等常见依赖包,我们可以一并写到.npmrc中:

// .npmrcsass_binary_site=https://npm.taobao.org/mirrors/node-sasschromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriverphantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjselectron_mirror=https://npm.taobao.org/mirrors/electron 原因三: node版本与node-sass版本不兼容

node-sass版本兼容性并不好,老项目中依赖的node-sass很可能已经不兼容新的node,对应版本兼容如下(或参考官方仓库):

NodeJSMinimum node-sass versionNode ModuleNode 134.13+79Node 124.12+72Node 114.10+67Node 104.9+64Node 84.5.3+57

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。