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

Bar*_*zyk 13 sass node.js angular

我对angular 6执行了更新.在ng serve -o期间,我收到了sass-loader期望node-sass的错误.运行服务后-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)
Run Code Online (Sandbox Code Playgroud)

很明显,我检查了一切(在我看来),我不知道发生了什么.

的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"
}
Run Code Online (Sandbox Code Playgroud)

dir -l node_modules说:

...
05/07/2018  08:53 AM    <DIR>          node-sass
...
05/07/2018  08:53 AM    <DIR>          sass-loader
...
Run Code Online (Sandbox Code Playgroud)

我执行了:

npm rebuild node-sass 
Run Code Online (Sandbox Code Playgroud)

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

npm cache clear --force
npm install
Run Code Online (Sandbox Code Playgroud)

但仍然没有成功.

我错过了什么?

小智 23

npm rebuild --force
Run Code Online (Sandbox Code Playgroud)

aslo帮助

  • 对命令所做的一点解释将不胜感激 (7认同)

小智 8

我用

npm install node-sass
Run Code Online (Sandbox Code Playgroud)

在项目文件夹内,对于项目,因为全局安装(使用-g选项)并没有解决问题。


can*_*idJ 7

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

  1. 删除package-lock.json文件.
  2. 转到node_module文件夹并运行rm -rf node_modules.
  3. npm install

package-lock.json文件将使用新的依赖项版本自动更新.

希望能帮助到你.

  • 可能需要“ npm重建节点资源”作为步骤#4。删除package-lock.json和node_modules会导致拉出新版本的node-sass。但是,当执行简单的“ npm安装”时,此新版本有时无法构建vendor.js。'npm rebuild node-sass'构建vendor.js。无需重建所有内容。 (3认同)
  • 没有为我工作。但是 DarkNeuron 的提示对我有用。 (2认同)