【问题标题】:Sass-loader requires node-sass >=4 even if that existSass-loader 需要 node-sass >=4 即使存在
【发布时间】:2018-10-17 00:43:14
【问题描述】:

我对 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 中指定。尝试从 json 中删除 node-sasssass-loader,清除所有内容,安装并构建。
  • 使用node 10.0.0 时遇到同样的问题...我现在再次降级为node 9.11.1,现在它可以工作...不知道可能是什么原因...。
  • 遇到了同样的问题。我可以看到您已经进行了重建,但请尝试重建所有内容:npm rebuild --force。这为我解决了问题。
  • @Sebastian Hildebrandt 我正在考虑从节点 10 降级到节点 9.11。之后我是否必须安装任何其他模块?升级到 Window 10 后,我的应用程序停止工作并收到相同的错误(模块构建失败:错误:sass-loader 需要 node-sass >=4。)安装此程序后,安装 Python 2 并设置 PATH 时出现错误。我安装了 Python 3.x。现在我必须降级到 Python 2 吗?我的设置:Angular CLI:6.2.1 / 节点:10.0.0 / 操作系统:win32 x64

标签: node.js angular sass


【解决方案1】:

我有同样的问题,我使用以下步骤解决了:

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

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

希望对你有帮助。

【讨论】:

  • 对我不起作用。但 DarkNeuron 的提示对我有用。
  • 这个问题发生在我在 CI 服务器上完全干净安装的情况下。
  • 可能需要 'npm rebuild node-sass' 作为第 4 步。删除 package-lock.json 和 node_modules 会导致拉取新版本的 node-sass。但是,这个新版本在执行简单的“npm install”时有时无法构建 vendor.js。 'npm rebuild node-sass' 构建 vendor.js。无需重建一切。
【解决方案2】:
npm rebuild --force

也有帮助

【讨论】:

  • 稍微解释一下命令的作用
  • 这样做解决了我的问题,将现有的:"node-sass": "^4.6.0" 更新为:"node-sass": "^4.12.0"。感谢分享!
【解决方案3】:

我修复了它

npm install node-sass

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

【讨论】:

    【解决方案4】:

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

    npm install --unsafe-perm

    【讨论】:

      【解决方案5】:

      以下步骤解决了这个问题

      1. 删除\Users\&lt;user_id&gt;\AppData\Roaming\npm-cache 中的node-saas 文件夹
      2. 删除&lt;application_folder&gt;/node_modules 中的node-saas 文件夹
      3. &lt;application_folder&gt; 运行npm install

      【讨论】:

        【解决方案6】:

        只需运行此代码...

        npm install --save node-sass
        

        【讨论】:

          【解决方案7】:

          我使用以下步骤解决了这个问题:

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

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

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

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

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

              你可以找到完整的信息here

              这解决了我的问题

              【讨论】:

                猜你喜欢
                • 2023-04-08
                • 2019-12-24
                • 2018-11-03
                • 2021-05-02
                • 2020-03-05
                • 2016-05-20
                • 2022-11-13
                • 2019-12-06
                • 1970-01-01
                相关资源
                最近更新 更多