По какой-то причине `node-sass` не работает

#node.js #bash #npm #sass #node-sass

#node.js #bash #npm #sass #узел-sass

Вопрос:

Я пытаюсь установить модуль node-sass npm на macOS 10.12. Я установил npm нормально brew install node (хотя мне нужно было в sudo chown некоторые каталоги), и npm install -g node-sass он отлично работает и отлично устанавливает его. Однако, когда я запускаю node-sass после этого, это не работает. Он просто говорит -bash: node-sass: command not found . Команда which npm возвращается /usr/local/bin/npm , если это помогает.

node-sass Локальная установка только npm install node-sass без глобального флага ( -g ), cd -ing в ./node-modules/node-sass/bin/ и затем запуск ./node-sass работает, но я бы хотел, чтобы он выполнялся глобально, потому что пакет Atom, который я хотел бы использовать ( sass-autocompile ), требует его запуска глобально.

Ответ №1:

Я исправил эту проблему и отправляю этот ответ для всех, у кого может быть такая же проблема.

Сначала проверьте префикс пути npm . Вы можете проверить префикс пути с npm config get prefix помощью .

Мой префикс пути был фактически /usr/local/Cellar/node/6.3.0/libexec/npm вместо /usr/local .

Измените это на /usr/local/ with npm config set prefix /usr/local . Также используется sudo chown $USER /usr/local/ amp;amp; sudo chown $USER /usr/local/bin для смены владельца этих каталогов, если ваш текущий пользователь еще не владеет ими.

Теперь вы можете запустить npm install -g node-sass и после установки, он должен работать!

Ответ №2:

В Mac OSX требуется путь к команде ‘node-sass’.

Вы устанавливали пакет глобально (npm install -g node-sass) или локально? Если локально, инструмент CLI может быть вызван как ./node_modules/.bin/node-sass

Когда он установлен глобально, вам необходимо иметь /usr/local/bin в вашей переменной среды $PATH. Или вызовите его с полным путем: /usr/local/bin/node-sass -o …

Комментарии:

1. Спасибо за вашу помощь. Однако это возвращается -bash: /usr/local/bin/node-sass: No such file or directory .

2. Я изменил ответ, попробуйте еще раз, пожалуйста

3. Что это возвращает: ls -al / usr / local / bin / node-sass?

4. Я установил его глобально с -g флагом (спасибо, что напомнили мне об этом; Я добавил его в ответ). ls -al /usr/local/bin/node-sass ВОЗВРАТ ls: /usr/local/bin/node-sass: No such file or directory . Другое дело: когда я устанавливаю его локально (т. Е. Без -g флага и cd в ./node-modules/node-sass/bin/ , я могу запустить ./node-sass . Я просто не могу запустить его глобально с node-sass or even /usr/local/bin/node-sass , что я хотел бы сделать, потому что этого требует пакет Atom, который я хочу использовать.

5. вы можете скомпилировать sass на Mac OSX (используя пакет «sass-autocompile»).