Sass-loader需要node-sass> = 4即使它存在

时间:2018-05-07 08:47:46

标签: node.js angular sass

我对angular 6执行了更新。在ng serve -o期间,我收到了sass-loader期望node-sass的错误。 运行服务后,我收到:

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 

和secod方法: 我与%User%\ AppData \ Roaming \ npm-cache一起删除了本地节点模块。然后我删除了锁定文件并执行了npm

npm cache clear --force
npm install

但仍然没有成功。

我想念什么?

9 个答案:

答案 0 :(得分:18)

npm rebuild --force

aslo help

答案 1 :(得分:6)

我有同样的问题,我使用以下步骤修复:

  1. 删除package-lock.json文件。
  2. 转到node_module文件夹并运行rm -rf node_modules
  3. 运行npm install
  4. package-lock.json文件将使用新的依赖项版本自动更新。

    希望它有所帮助。

答案 2 :(得分:0)

我用

修复了它
npm install node-sass

在项目文件夹中以及该项目中,因为全局安装(使用-g选项)无法解决问题。

希望有帮助。

答案 3 :(得分:0)

要解决您的问题,请运行以下命令

npm install --unsafe-perm

答案 4 :(得分:0)

请按照以下步骤解决此问题

  1. 删除\ Users \\ AppData \ Roaming \ npm-cache中的node-saas文件夹
  2. 删除/ node_modules中的node-saas文件夹
  3. 运行“ npm install”

这为我解决了这个问题。

答案 5 :(得分:0)

只需运行此代码...

npm install --save node-sass

答案 6 :(得分:0)

我通过以下步骤解决了此问题:

  1. 打开package.json
  2. 添加您要安装的node-sass版本,例如"node-sass": "^4.12.0"
  3. 在命令行界面(CLI)中运行安装命令:npm install node-sass
  4. 问题将得到解决。

答案 7 :(得分:0)

可能是版本不匹配。要安装工作 node-sass 版本,您可以使用

npm uninstall node-sass
npm install node-sass@4.14.0

并且您可以根据下表选择您的版本号,以及您安装的节点版本,您可以通过node --version

查看

node-sass compatibility table

您可以找到完整信息here

这解决了我的问题

答案 8 :(得分:-1)

您可以按照以下步骤操作:

首先删除package-lock.json文件和node_modules。 然后运行npm install package-lock.json文件将使用新的依赖项版本自动更新。