首页IT科技蛋仔派对官服下载安装(node-sass安装失败的解决方法)

蛋仔派对官服下载安装(node-sass安装失败的解决方法)

时间2025-04-28 11:02:53分类IT科技浏览11445
导读:安装node-sass有以下几个步骤: 校验本地node_modules中是否已安装node-sass,版本是否一致; 如未安装或版本不符,从npm源安装node-sass本体; 检测全局缓存和本地中是否有binding.node,如有即跳过安装; 没有bindin...

安装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文件设置:

// .npmrc registry=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文件设置:

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

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

// .npmrc sass_binary_site=https://npm.taobao.org/mirrors/node-sass chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs electron_mirror=https://npm.taobao.org/mirrors/electron

原因三: node版本与node-sass版本不兼容

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

NodeJS Minimum node-sass version Node Module Node 13 4.13+ 79 Node 12 4.12+ 72 Node 11 4.10+ 67 Node 10 4.9+ 64 Node 8 4.5.3+ 57

本文开头的安装例子中                    ,binding.node的版本是v4.13.0/win32-x64-64_binding.node,可以看到,里面包括node-sass版本号v4.13.0,平台win32,架构x64,以及Node Module的版本64            。Node Module是node的一个模块                    ,其版本号可以在进程process.versions中查到:

PS D:\demo> node > console.log(process.versions); { http_parser: 2.8.0, node: 10.15.3, v8: 6.8.275.32-node.51, uv: 1.23.2, zlib: 1.2.11, ares: 1.15.0, modules: 64, nghttp2: 1.34.0, napi: 3, openssl: 1.1.0j, icu: 62.1, unicode: 11.0, cldr: 33.1, tz: 2018e } undefined >

如上显示                        ,node10.15.3对应的module版本为64                        。 假如node-sass与node的版本不兼容    ,就会找不到对应的binding.node而报错                ,例如你的node是10.15.3                        ,装node-sass4.6.1        ,则会尝试安装v4.6.1/win32-x64-64_binding.node,但这个版本的binding.node是不存在的            。 此时改node-sass或node的版本即可        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网上商城购物卡(网上商城购物系统设计与实现(Java+Web+SSM+MySQL)) linux全局替换命令%s(Linux 批量替换内容的命令行方法)