Skip to content

安装 node-sass 的正确姿势 #28

Open
@lmk123

Description

@lmk123

2019.04.25 更新:

大家可以用 dart-sass 无缝替换 node-sass 了!dart-sass 兼容 node-sass 的 API,而且安装过程无需下载二进制文件,这样大家就不需要用本篇文章的方式安装 node-sass 了。


安装 node-sass 的时候总是会各种不成功,今天我琢磨了一会儿总算知道要怎么解决了。

首先要知道的是,安装 node-sass 时在 node scripts/install 阶段会从 github.com 上下载一个 .node 文件,大部分安装不成功的原因都源自这里,因为 GitHub Releases 里的文件都托管在 s3.amazonaws.com 上面,而这个网址在国内总是网络不稳定,所以我们需要通过第三方服务器下载这个文件。(顺带一提,你可以看看这个好玩的 commit

方法一:使用淘宝镜像

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

SASS_BINARY_SITE=https://npmmirror.com/mirrors/node-sass/ npm install node-sass

我们一般更希望能跨平台、并且直接使用 npm install 安装所有依赖,所以我的做法是在项目内添加一个 .npmrc 文件:

sass_binary_site=https://npmmirror.com/mirrors/node-sass/
phantomjs_cdnurl=https://npmmirror.com/mirrors/phantomjs/
electron_mirror=https://npmmirror.com/mirrors/electron/
registry=https://npmmirror.com

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

方法二:使用梯子

假设你的梯子在你本地机器上开启了一个第三方服务器 127.0.0.1:1080,那么只需按照下面的方法配置一下就能正常安装 node-sass 了(如果你开启的是 PAC 模式而不是全局模式,那还需要将 s3.amazonaws.com 加入 PAC 列表):

npm config set proxy http://127.0.0.1:1080
npm i node-sass

# 下载完成后删除 http 代理
npm config delete proxy

嗯,这样下来就能正常安装了。


给自己的软件打个广告:跨平台 & 一站式划词、截图、网页全文、音视频翻译扩展——划词翻译 https://hcfy.app/docs/guides/summary

Activity

lzxb

lzxb commented on Jul 26, 2016

@lzxb

卧槽,搞了一个下午,还是楼主的第一条管用

lmk123

lmk123 commented on Jul 26, 2016

@lmk123
OwnerAuthor

哈哈,我当初也是搞了一下午才弄明白

lzxb

lzxb commented on Jul 26, 2016

@lzxb
wanming

wanming commented on Aug 20, 2016

@wanming
megone

megone commented on Aug 29, 2016

@megone

楼主威武

lmk123

lmk123 commented on Oct 8, 2016

@lmk123
OwnerAuthor

@dear-lizhihua 我的做法是在项目内添加一个 .npmrc 文件:

phantomjs_cdnurl=http://cnpmjs.org/downloads
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
registry=https://registry.npm.taobao.org

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

added a commit that references this issue on Oct 15, 2016
yyzych

yyzych commented on Feb 5, 2017

@yyzych

楼主大发!

xiaofuyesnew

xiaofuyesnew commented on Feb 7, 2017

@xiaofuyesnew

对windows下的同学如果第一种办法无效的话可以拆分成两个命令

set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/
npm install node-sass

然后每次安装之前都要set一下。秒装。

paysage

paysage commented on Feb 8, 2017

@paysage

请问对应的依赖也会一起安装吗? 还是还得单独安装?

xiaofuyesnew

xiaofuyesnew commented on Feb 13, 2017

@xiaofuyesnew

@paysage 不需要单独安装,如果依赖中有node-sass的话,直接在npm install前面加SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/
也就是这样:

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

在遇到node-sass的二进制文件时,会自动从淘宝的镜像里面开始下载。

结论: node-sass不需要单独安装

xhlwill

xhlwill commented on Feb 13, 2017

@xhlwill

windows下在 git bash 窗口里(前提是安装了git)也可以直接运行这条命令

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

因为安装git就同时为windows安装了一个gnu环境 - mingw

84 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @soarpatriot@tsingroo@perkfly@nellochen@yl1003

        Issue actions

          安装 node-sass 的正确姿势 · Issue #28 · lmk123/blog