安装 grunt-sass 时使用缓存的 libsass 二进制文件
Use cached libsass binary when installing grunt-sass
我有很多项目使用 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。当我尝试使用 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。
我有很多项目使用 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。当我尝试使用 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。