Запуск локальной версии узла, отличной от глобальной, с gulp и node-sass

У меня есть проект, использующий node npm и gulp. Когда мы собираем узел проекта, узел 5 устанавливается в локальный каталог и запускает npm install (компилирует все модули узлов с узла v5). У меня глобально установлен узел версии 7.

У нас есть задача gulp, которая использует node-sass, которая скомпилирована с v5, но когда я пытаюсь запустить задачу, она использует глобальную версию и ошибки node-sass из «Отсутствует привязка».

Как я могу запустить его, используя локальную версию узла?


person kisonay    schedule 07.12.2016    source источник
comment
В файле gulp вы require используете node-sass? Если да, то он должен извлекаться из локальных пакетов node_modules, если только вы не создали символическую ссылку через npm link node-sass. Если вы не require выполняете пакет, то это будет проблемой.   -  person GPicazo    schedule 08.12.2016


Ответы (4)


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

person dmfay    schedule 07.12.2016
comment
Спасибо посмотрю. Надеялся, что есть что-то более простое, что я мог бы запустить как скрипт npm или аналогичный. - person kisonay; 08.12.2016

Если вы хотите автоматизировать это, вы можете просто добавить консольную команду, чтобы использовать необходимую версию через nvm в вашей задаче gulp. например "нвм установить v5.0.0"

person IAMZERG    schedule 07.12.2016

Чтобы расширить ответ @dmfay, у вас должен быть установлен узел 5 (через nvm или tj's n).

Однако вы можете включить в свой package.json для проекта, чтобы он опирался на узел 5. (В свойстве «engine»)

person Denis Tsoi    schedule 30.03.2017

Ни одно из решений по установке/перестройке не решило проблему для меня (используя gulp).

Вот как я решил это:

1) Загрузите отсутствующий файл привязки из репозитория.

2) Переименуйте файл binding.node.

3) Создайте /node-modules/vendor/<operating system>/ (для моей версии node/node-sass каталог <operating system> для Linux равен linux-x64-64, используйте имя папки из сообщения об ошибке привязки)

4) Добавьте файл binding.node в /node-modules/vendor/<operating system>/.

5) запустить глоток

person Don P    schedule 14.01.2019