sass-loader require( "node-sass" ));但我安装了 sass



我在M1苹果上,所以节点sass对我不起作用。我在每个网站上工作,我都卸载节点sass并安装sass(如果有人有这个问题,也可以使用16.2.0更改nvm(。

这一直有效,但今天这样做后,我得到了以下错误

Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Cannot find module 'node-sass'

所以我进入node_modules/sas-loader/lib/loader.js,在第46行中发现了这个

const render = getRenderFuncFromSassImpl(options.implementation || require("node-sass"));

并将其更改为

const render = getRenderFuncFromSassImpl(options.implementation || require("sass"));

一切正常,css已编译。。但我所做的似乎是一次黑客攻击,

  1. 有更好的方法吗
  2. 这会打破未来的局面吗
  3. 为什么它不像我工作的其他20个网站那样自动更新

您可以在package.json中设置sass-loader的实现,这样它将使用options.implementation的值而不是require("node-sass"):

module.exports = {
module: {
rules: [
{
test: /.s[ac]ss$/i,
use: [
"style-loader",
"css-loader",
{
loader: "sass-loader",
options: {
// Prefer `dart-sass`
implementation: require("sass"),
},
},
],
},
],
},
};

至于你的第三个问题,医生说:

默认情况下,加载程序会根据您的依赖关系解析实现。只需将所需的实现添加到package.json(sassnode-sass包(并安装依赖项。

也许您仍然将node-sass列为依赖项?

我也遇到了同样的问题。最终起作用的是删除package-lock.json并重新安装所有内容。

我通过安装暂时修复了它sass-loader@7这是我的包.json

npm安装node-sass@npm:萨斯npm isass-loader@7

相关内容

  • 没有找到相关文章

最新更新