安装grunt-sass时使用缓存的libsass二进制文件

时间:2016-09-14 14:27:43

标签: node-sass libsass

我有很多使用grunt-sass的项目,这取决于node-sass,这取决于libsass。每当我从他们的git存储库和npm install签出其中一个项目时,libsass再次被编译,在我的计算机中,这个过程需要花费很多时间。

node-sass有提供现有libsass二进制文件的方法,所以我不必每次都要编译它。 (https://github.com/sass/node-sass#binary-configuration-parameters

我尝试了全局安装node-sass npm包。它编译libsass并将其安装在我的/usr/local/lib/node_modules/node-sass文件夹中:

npm install -g node-sass

在我的sass_binary_path文件中设置~/.npmrc参数后:

sass_binary_path=/usr/local/lib/node_modules/node-sass/vendor/darwin-x64-47/binding.node

在结帐后我npm install我的项目时,libsass不再编译,安装成功。 但是当我执行使用grunt-sass的grunt任务时,我得到的是

Loading "sass.js" tasks...ERROR
>> Error: ENOENT: no such file or directory, scandir '~/dev/my-project/node_modules/node-sass/vendor'
Warning: Task "sass:dist" not found. Use --force to continue.

Aborted due to warnings.

在缓存libsass的过程中我做错了什么?

-

编辑:

当我使用普通进程安装npm install时,会创建node_modules / node-sass / vendor / darwin-x64-47 / binding.node。当我尝试使用node-sass缓存标志时,它甚至不会创建node_modules/node-sass/vendor文件夹。

2 个答案:

答案 0 :(得分:1)

我最终能够使用缓存的node-sass库。

首先应从以下网址下载二进制包:https://github.com/sass/node-sass/releases

然后我使用环境变量来指向这个二进制文件。

export SASS_BINARY_PATH="$HOME/dev/bin/darwin-x64-47_binding.node"

使用npm安装node-sass时,它使用提供的二进制文件。

答案 1 :(得分:1)

透明缓存即将发布https://github.com/sass/node-sass/pull/1714(可能是版本3.11),我只需要修复PR。