ОШИБКА в Не удается найти модуль 'node-sass'


186

Конфиг: macOS High Sierra, версия 10.13.2, узел: v8.1.2 npm: 5.0.3 Когда я запускаю npm start в моем проекте angularjs, я получаю эту ошибку:

ERROR in Cannot find module 'node-sass'

После этого я бегу:

npm i node-sass

Теперь я получаю эту ошибку:

gyp: No Xcode or CLT version detected!
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1

Почему npm не установит node-sass? Как я могу установить node-sass?


30
бегиnpm install --save-dev node-sass
Ашок R

Ответы:


369

Вот решение:

sudo npm install --save-dev  --unsafe-perm node-sass

Наслаждайтесь!


21
Это сработало, но если бы кто-то мог добавить к ответу, почему это сработало, а простое npm install node-sassне сработало, это было бы поучительно.
Майкл Поттер

6
@AlexOnozor КАК ЭТО РАБОТАЕТ?
Бахман.

13
все, что мне нужно, это установить node-sass в зависимостях dev npm install --save-dev node-sass
Subhash Diwakar

3
Это сработало для меня. Я начал получать эту проблему, когда я установил узел 12 (когда я начал новый угловой проект в Angular 8). Мое приложение angular 6 больше не будет создавать и выдавать ошибку о node-sass. Все исправлено :)
панколог

10
--save-dev используется для того, чтобы ваше приложение могло найти модуль в локальных node_modules. --save-dev добавляет пакет в devDependencies в package.json. --unsafe - perm используется для запуска скриптов установки от имени пользователя root. Чтобы избежать sudo, используйте вместо этого nvm. --unsafe - Пермь действительно не нужна, так как sudo уже упоминалось. Таким образом, команда в основном сжимает скрипт для установки node-sass любой ценой.
Рахул Шарма

92
  1. Эта ошибка для узла-sass отсутствует ... для решения этой проблемы вы просто хотите выполнить следующую команду

npm install node-sass


36
добавить как devDependencies npm install --save-dev node-sass.
Ашок R

5
Не помогает Я уже установил node-sass десятки раз (что было непросто), но все равно не получается. Node-sass явно проблема.
мкв

2
@AshokR Не могли бы вы уточнить, ПОЧЕМУ именно добавление его как devDependencies решает проблему? Как он НЕ потерпит неудачу при развертывании на Prod?
Amogh Natu

19

Бегать:

npm rebuild node-sass --force              

и это будет работать нормально.


2
Не работает нормально, к сожалению. Для меня (на окнах) проблема остается.
мкв

14

Согласно странице github node-sass, поддерживаемая версия node.js зависит от выпуска.

https://github.com/sass/node-sass

введите описание изображения здесь

Пример. Проверьте версию используемого вами узла.

node -v
-> v12.0.0

вам нужен node-sass v4.12 +. так что вы можете

npm install node-sass@4.12.0

или если 4.12.0 является самым последним

npm install node-sass@latest

( npm install node-sassустановит последнюю версию во многих случаях, но помните, что она не всегда устанавливает последнюю версию (в этом примере 4.12.0), если зависимость в package.json написана как ^ 3.0.0, ~ 4.11.0) В чем разница между тильдой (~) и кареткой (^) в package.json?

Наконец, использование sudo с npm не является хорошей практикой. Пожалуйста, обратитесь к этой статье. https://medium.com/@ExplosionPills/dont-use-sudo-with-npm-still-66e609f5f92


это решение сработало для меня ... Я использовал более старый MacBook 2010 года, OSX 10.12, и соответствовал версии node-sass, как описано здесь, решил это
Theuns Alberts

«НАЯ установка node-sass@4.12.0» - решить мою проблему - спасибо
gavgrif



4

node-sass не устанавливается, и это может быть одной из многих причин

Вы не установили его

npm install node-sass --save-dev

У вас есть ошибка прав доступа

sudo npm install --save-dev  --unsafe-perm node-sass

У вас была проблема с памятью, потому что она пыталась это сделать (собрать из кода на вашей платформе), это относится к некоторым платформам и версиям узлов

node --max_old_space_size=8000 $(which npm) install node-sass --save-dev

Версии вашего узла и npm несовместимы, что, скорее всего, привело к сбою в процессе сборки,

В этом случае используйте n или nvm, чтобы убедиться, что у вас одинаковая версия в новой и исходной среде, в которой она работала, как это обычно происходит при использовании разных версий в разных средах.


4

Это то, что сработало для меня. Сначала я удаляю node-sass. Затем установите его обратно.

npm удалить узел-sass
npm установить --save-dev node-sass


3

Это не помогло мне, потому что я использовал последнюю версию узла (12.7.0), после чего мне пришлось явно установить последнюю версию node-sassс:

npm install node-sass@4.12.0


2

Существует проблема с загрузкой зависимостей npm из-за имеющейся сети. попробуйте скачать зависимости npm в открытой сети. вы не получите никаких проблем. Я тоже столкнулся с подобной проблемой и наконец решил.

используйте следующие команды: npm install (он загрузит все зависимости) npm start, чтобы запустить угловое приложение


@TinySkillz я думаю, что он упоминает сети без прокси
Akhil S Kamath

2

npm install node-sass выполнит эту работу в большинстве случаев, так как добавит отсутствующий модуль зависимости sass npm, не существует или перезапишет предыдущую сбойную версию.

Для пользователей Mac sudo команды, указанные выше.

На машинах с Windows npm rebuild node-sass --force некоторые пользователи могут не работать, потому что в сущности говорится: «Пожалуйста, заставьте npm перестроить модуль sass для меня». Это не будет работать, потому что этот модуль не существует.

Всякий раз, когда вы делали npm installначальную установку, модуль sass не устанавливался, поэтому возникает эта проблема.


2

Я проверил версию Node на моей локальной машине, которая v10.11.0 .

Затем, когда я проверил свою машину для разработки, где произошла ошибка, у нее была версия Node V.10.8.0 .

Обновление узла до v10.11.0 моей машины разработки решило проблему.

Надеюсь это поможет.


1
это ответ, который работал в моем случае. Спасибо.
Адеш Кумар





1

Одним из случаев является сбой процесса после установки. Сразу после установки node-sass будет выполнен скрипт после установки. Для этого требуется Python и сборщик C ++. Журнал «GYP: Xcode или CLT версия не обнаружена!» возможно, потому что это не могло найти никакого строителя C ++. Поэтому попробуйте установить Python и любой сборщик C ++, а затем поместить их каталоги в переменные окружения, чтобы npm мог их найти. (Я из Windows)


1

Я столкнулся с этой ошибкой, когда использовал встроенный git-терминал Microsoft Visual Studio Code. По какой-то странной причине код VS не позволил мне установить 'node-sass'. Затем я использовал Git Bash (который был установлен вместе с git) и выполнил следующую команду: npm install node-sass У меня это сработало. Я не знаю почему и как это сработало. Если у кого-нибудь есть объяснение, пожалуйста, дайте мне знать.


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

1

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

npm uninstall node-sass

Затем я переустановил до последней версии с

npm install node-sass

1

Установка npm --save-dev --unsafe-perm node-sass

Это сделает магию, вы можете использовать его с sudo


1

Моя проблема заключалась в том, что веб -фильтр не позволил мне загрузить пакет node-sass , когда я выполнил команду

npm i

После установки инструментов сборки Windows

npm i -g windows-build-tools

это основано node-sassна его собственном, и теперь я могу использовать это.

PS: Я также установил Python 2.7.17 раньше, но я не думаю, что это помогло.


0

Я также столкнулся с этой ошибкой. Ни один из вышеперечисленных методов не работает для меня. Пожалуйста, следуйте этому, как это работает для меня.

Для установки node-sass в Ubuntu 16 через npm: -

Вы можете установить с версией npm 5.2.0

Если вы используете nvm: -

NVM установить 8.2.1
использование nvm 8.2.1
npm установить node-sass

Если вы используете npm отдельно, обновите или понизьте версию npm до 5.2.0

npm установить node-sass

0

Вы должны попытаться проверить журнал, созданный npm install.

Я столкнулся с теми же проблемами и обнаружил ошибку, что python2 не найден в пути (переменная окружения).

После установки Python все работало нормально.


0

Обновление до последней версии nodeJS решило мою проблему



0

У меня была такая же ошибка при установке зависимостей в Angular . Я пробовал вышеупомянутые методы, но ни один из них не работал, пока я не удалил, package-lock.jsonкоторый был ранее создан при запуске Node v11 .

Сейчас я использую Node v12 так что я так решил.

Я повторяю, если у вас есть package-lock.jsonудалить его, файл, а затем установить зависимости.




0

Кажется, есть проблема с версией "node-sass": "4.5.3", попробуйте обновить до последней версии. Например, вы можете попробовать добавить ^ "node-sass": "^4.5.3"последнюю версию


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.