Sass-loader требует node-sass> = 4, даже если он существует

Я выполнил обновление до angular 6. И во время ng serve -o я получаю сообщение об ошибке, что sass-loader ожидает node-sass. После запуска ng serve -o я получаю:

ERROR in ./src/sass/styles.scss (./node_modules/raw-loader!./node_modules/postcss-loader/lib??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/sass/styles.scss)
    Module build failed: Error: `sass-loader` requires `node-sass` >=4. Please install a compatible version.
    at Object.sassLoader (node_modules\sass-loader\lib\loader.js:31:19)
ERROR in ./src/app/app.component.scss
Module build failed: Error: `sass-loader` requires `node-sass` >=4. Please install a compatible version.
    at Object.sassLoader (node_modules\sass-loader\lib\loader.js:31:19)
ERROR in x.component.scss
Module build failed: Error: `sass-loader` requires `node-sass` >=4. Please install a compatible version.
    at Object.sassLoader (\node_modules\sass-loader\lib\loader.js:31:19)
ERROR in x.component.scss
Module build failed: Error: `sass-loader` requires `node-sass` >=4. Please install a compatible version.
    at Object.sassLoader (loader.js:31:19)
ERROR in .x.component.scss
Module build failed: Error: `sass-loader` requires `node-sass` >=4. Please install a compatible version.
    at Object.sassLoader (node_modules\sass-loader\lib\loader.js:31:19)

Очевидно, я все проверяю (на мой взгляд) и понятия не имею, что происходит.

Package.Json:

"devDependencies": {
"@angular-devkit/build-angular": "~0.6.0",
"@angular/cli": "6.0.0",
"@angular/compiler-cli": "6.0.0",
"@angular/language-service": "6.0.0",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.106",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-html-detailed-reporter": "^1.1.21",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-phantomjs-launcher": "^1.0.4",
"karma-teamcity-reporter": "^1.1.0",
"phantomjs-prebuilt": "^2.1.16",
"protractor": "~5.1.2",
"node-sass": "^4.9.0",
"sass-loader": "^7.0.1",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
"typescript": "2.7.2"
}

dir -l node_modules говорит:

...
05/07/2018  08:53 AM    <DIR>          node-sass
...
05/07/2018  08:53 AM    <DIR>          sass-loader
...

Я выполнил:

npm rebuild node-sass 

и второй подход: Я удалил локальный узел-модуль вместе с% User% \ AppData \ Roaming \ npm-cache. затем я удалил файл блокировки и выполнил npm

npm cache clear --force
npm install

Но все равно безуспешно.

Что я скучаю?

sass-loader является зависимостью от angular, поэтому указывать его в package.json нет необходимости. Попробуйте удалить node-sass и sass-loader из json, очистите все, установите и соберите.
Leon 07.05.2018 12:30

Имея ту же проблему с использованием node 10.0.0 ... Теперь я снова понизил до node 9.11.1, и теперь он работает ... не уверен, в чем может быть причина ...

Sebastian Hildebrandt 07.05.2018 13:52

Была такая же проблема. Я вижу, вы уже выполнили перестройку, но попробуйте перестроить все: npm rebuild --force. Это исправило это для меня.

DarkNeuron 07.05.2018 18:10

@Sebastian Hildebrandt Я собираюсь перейти на узел 9.11 с узла 10. После этого мне нужно установить какие-либо другие модули? После обновления до Window 10 мое приложение перестало работать, и я получаю ту же ошибку (Ошибка сборки модуля: Ошибка: sass-loader требует node-sass> = 4.) После установки я получаю сообщение об ошибке для установки Python 2 и установки PATH. У меня установлен Python 3.x. Теперь мне нужно перейти на Python 2? Моя настройка: Angular CLI: 6.2.1 / Узел: 10.0.0 / OS: win32 x64

aswininayak 10.09.2018 16:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
20
4
27 248
8

Ответы 8

У меня была такая же проблема, которую я исправил, выполнив следующие действия:

  1. Удалите файл package-lock.json.
  2. Перейдите в папку node_module и запустите rm -rf node_modules.
  3. Запускаем npm install

Файл package-lock.json автоматически обновится до новой версии зависимостей.

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

У меня не получилось. Но подсказка DarkNeuron у меня сработала.

Razze 08.05.2018 17:55

Эта проблема возникла у меня при абсолютно чистой установке на CI-сервере.

user9315861 20.05.2018 18:52

Может потребоваться npm rebuild node-sass в качестве шага №4. Удаление package-lock.json и node_modules приводит к получению новой версии node-sass. Однако в этой новой версии иногда не удается создать vendor.js при простой установке npm. 'npm rebuild node-sass' строит vendor.js. Не нужно все перестраивать.

Maksym 20.07.2018 17:39
npm rebuild --force

также помогает

Небольшое объяснение того, что делает команда, было бы полезно

Jan B. 24.05.2018 12:46

Это разрешило мою проблему, обновив существующий: "node-sass": "^4.6.0" до следующего: "node-sass": "^4.12.0". Спасибо, что поделился!

Devner 26.02.2020 07:37

Я исправил это с помощью

npm install node-sass

внутри папки проекта и для проекта, поскольку его глобальная установка (с опцией -g) не решила проблему.

Чтобы решить вашу проблему, запустите эту команду

npm install --unsafe-perm

Следующие шаги решили эту проблему

  1. Удалить папку node-saas в \Users\<user_id>\AppData\Roaming\npm-cache
  2. Удалить папку node-saas в <application_folder>/node_modules
  3. Запускаем npm install с <application_folder>

Просто запустите этот код ...

npm install --save node-sass

Я исправил эту проблему, выполнив следующие действия:

  1. Открыть package.json
  2. Добавьте версию node-sass, которую вы хотите установить, например "node-sass": "^4.12.0"
  3. Запустите команду установки в интерфейсе командной строки (CLI): npm install node-sass
  4. Проблема будет решена.

Вы можете выполнить следующие действия:

Прежде всего удалите файлы package-lock.json и node_modules. а затем запустите npm install Файл package-lock.json автоматически обновится с учетом новой версии зависимостей.

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