Используйте кешированный двоичный файл libsass при установке grunt-sass
У меня есть много проектов, которые используют grunt-sass
, который зависит от node-sass
, который зависит от libsass
, Каждый раз, когда я извлекаю один из этих проектов из их репозитория git и npm install
их, libsass
снова компилируется и на моем компьютере этот процесс занимает много времени.
node-sass
есть способы обеспечения существующего libsass
бинарный, так что мне не нужно проходить процесс его компиляции каждый раз. ( https://github.com/sass/node-sass)
Я попытался установить глобально 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, которая использует grunt-sass, вот что я получаю:
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 ответа
Я был в состоянии использовать кэшированный node-sass
библиотека наконец-то.
Сначала необходимо загрузить бинарный пакет по адресу: https://github.com/sass/node-sass/releases
Затем я использовал переменную окружения, чтобы указать на этот двоичный файл.
export SASS_BINARY_PATH="$HOME/dev/bin/darwin-x64-47_binding.node"
При установке node-sass с помощью npm он использует предоставленный двоичный файл.
Прозрачное кеширование идет в https://github.com/sass/node-sass/pull/1714 (вероятно, версия 3.11), мне просто нужно исправить PR.