Ubuntu 17.10下安装node-sass失败:指定二进制文件不存在求助
我一眼就看出问题所在了——你配置的sass_binary_site地址不对!你填的是淘宝npm仓库的地址,但node-sass的二进制包镜像需要指向专门存放预编译.node文件的目录,不是普通的包仓库地址。按下面的步骤操作就能解决:
修正
~/.npmrc的镜像配置
打开~/.npmrc文件,把之前的sass_binary_site行替换成:sass_binary_site=https://npm.taobao.org/mirrors/node-sass/注意不要在地址前面加空格,这个路径是淘宝专门为node-sass提供的预编译包镜像目录,里面有各个版本、各平台的二进制文件,刚好能匹配你的Ubuntu 17.10 x64环境。
清理npm缓存(推荐操作)
之前安装失败可能留下了错误的缓存文件,先清理掉:npm cache clean --force重新安装node-sass
现在再执行安装命令:npm install node-sass不想改配置文件?试试临时环境变量
如果你不想修改~/.npmrc,可以直接用环境变量临时指定镜像地址,一次性完成安装:SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass额外检查:Node.js版本兼容性
顺便提一下,你要安装的node-sass v4.8.3对应的Node.js ABI版本是62(也就是Node.js 10.x系列)。你可以用node -v查看当前Node版本,如果版本不匹配,要么安装和你Node版本适配的node-sass版本,要么调整Node.js版本。比如你的Node是v12的话,就得装node-sass@4.12及以上版本才行。
为什么之前的配置没用?因为http://registry.npm.taobao.org是npm的包注册中心地址,用来下载普通的npm包,但node-sass的预编译二进制包是单独存放的,所以需要指定专门的镜像目录,而不是这个注册中心地址。
内容的提问来源于stack exchange,提问作者Robert Szczepański

