Sass-loader 需要 node-sass >=4 即使存在
Posted
技术标签:
【中文标题】Sass-loader 需要 node-sass >=4 即使存在【英文标题】:Sass-loader requires node-sass >=4 even if that exist 【发布时间】: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-sass
和 sass-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
【参考方案1】:
我有同样的问题,我使用以下步骤解决了:
-
删除
package-lock.json
文件。
转到node_module
文件夹并运行rm -rf node_modules
。
运行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】:以下步骤解决了这个问题
-
删除
\Users\<user_id>\AppData\Roaming\npm-cache
中的node-saas
文件夹
删除<application_folder>/node_modules
中的node-saas
文件夹
从<application_folder>
运行npm install
【讨论】:
【参考方案6】:只需运行此代码...
npm install --save node-sass
【讨论】:
【参考方案7】:我使用以下步骤解决了这个问题:
-
打开
package.json
添加node-sass
要安装的版本,例如"node-sass": "^4.12.0"
在命令行界面(CLI)中运行安装命令:npm install node-sass
问题将得到解决。
【讨论】:
【参考方案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
这解决了我的问题
【讨论】:
以上是关于Sass-loader 需要 node-sass >=4 即使存在的主要内容,如果未能解决你的问题,请参考以下文章
八、sass-loader的使用 ------ 2019-04-23
Asp.Net Core 中 webpack 上的 sass-loader
Asp.Net Core 中 webpack 上的 sass-loader
[解决]TypeError: this.getOptions is not a function