2016-09-14 9 views
0

У меня есть много проектов, которые используют grunt-sass, что зависит от node-sass, что зависит от libsass. Каждый раз, когда я просматриваю один из этих проектов из своего репозитория git и npm install их, libsass скомпилирован снова, и на моем компьютере этот процесс занимает много времени.Использовать кэшированную библиотеку libsass при установке grunt-sass

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 больше не компилируется, и установка прошла успешно. Но когда я выполнить задачу пехотинца, который использует черновую-дерзость, вот что я получаю:

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/узел-Sass/продавец/Darwin-x64-47/binding.node создается. Когда я пытаюсь использовать флаги кеша узла-сасса, он даже не создает папку node_modules/node-sass/vendor.

+0

Я не уверен, что libsass - это ваша проблема. Как выглядит ваш .scss-файл? Любые ссылки на поставщика? – Nix

+0

Нет, ссылка на этот каталог поставщиков отсутствует в 'node_modules/node-sass'. Когда я устанавливаю с использованием обычного процесса, создается 'node_modules/node-sass/vendor/darwin-x64-47/binding.node'. Когда я пытаюсь использовать флаги кеша узла-сасса, это не так. – armoucar

ответ

1

Наконец-то я смог использовать библиотеку cached node-sass.

Первый бинарный пакет должен быть загружен с: https://github.com/sass/node-sass/releases

Затем я использовал переменную окружения, чтобы указать на этот двоичный файл.

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

При установке узла-узла с номером npm он использует предоставленный двоичный код.