node-sass安装失败或出错的终极解决方案

node-sass装不上?使用淘宝镜像。

  • macOS 系统直接运行下面的命令即可:

    1
    SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass
  • 原因是执行默认安装的是3.13.1版本的, 而该版本的编译包链接失效.删除之前默认安装的版本,使用指定版本安装成功. 命令如下:

    1
    cnpm install --save node-sass@4.*
  • 跨平台、并且直接使用 npm install 安装所有依赖的做法,
    在项目内添加一个 .npmrc 文件:

    1
    2
    3
    4
    sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
    phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
    electron_mirror=https://npm.taobao.org/mirrors/electron/
    registry=https://registry.npm.taobao.org

    这样使用 npm install 安装 node-sass、electron 和 phantomjs 时都能自动从淘宝源上下载,但是在使用 npm publish 的时候要把 registry 这一行给注释掉,否则就会发布到淘宝源上去了。
    更多>>

QA

  • 报错如下时如何解决?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    > node-sass@4.10.0 install /Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass
    > node scripts/install.js

    Unable to save binary /Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass/vendor/darwin-x64-57 : { Error: EACCES: permission denied, mkdir '/Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass/vendor'
    at Object.fs.mkdirSync (fs.js:885:18)
    at sync (/Users/kunjie/workspace/fe-fin-data-com-era/node_modules/mkdirp/index.js:71:13)
    at Function.sync (/Users/kunjie/workspace/fe-fin-data-com-era/node_modules/mkdirp/index.js:77:24)
    at checkAndDownloadBinary (/Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass/scripts/install.js:114:11)
    at Object.<anonymous> (/Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass/scripts/install.js:157:1)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    errno: -13,
    code: 'EACCES',
    syscall: 'mkdir',
    path: '/Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass/vendor' }

    > node-sass@4.10.0 postinstall /Users/kunjie/workspace/fe-fin-data-com-era/node_modules/node-sass
    > node scripts/build.js
  1. 在命令前加上 sudo
    sudo npm install –save-dev node-sass
  2. 不过这样子可能还是不行,你需要这样:
    sudo npm install –unsafe-perm=true –save-dev node-sass
  3. 或许你还是会遇到错误,请尝试这样:

sudo npm install –unsafe-perm=true –allow-root –save-dev node-sass