在安装grunt-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

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

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-sass缓存标志时,它甚至不创建node_modules/node-sass/vendor文件夹。

我终于可以使用缓存的node-sass库了。

首先要从https://github.com/sass/node-sass/releases

下载一个二进制包

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新