Используйте кешированный двоичный файл 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.

Другие вопросы по тегам