首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sass -加载程序要求(“节点-sass”);但是我安装了sass。

sass -加载程序要求(“节点-sass”);但是我安装了sass。
EN

Stack Overflow用户
提问于 2022-04-11 15:45:25
回答 2查看 1.1K关注 0票数 2

我在M1苹果上,所以节点-sass不适合我。每一个我工作的站点,我卸载节点-sass和安装sass(如果有人有这个问题,也更改nvm使用16.2.0 )。

这种方法一直有效,但是在这样做之后,今天我得到了以下错误

代码语言:javascript
复制
 Module build failed (from ./node_modules/sass-loader/lib/loader.js):
    Error: Cannot find module 'node-sass'

因此,我进入了node_node/sass-加载程序/lib/loader.js,并在第46行中找到了这个

代码语言:javascript
复制
 const render = getRenderFuncFromSassImpl(options.implementation || require("node-sass"));

并将其改为

代码语言:javascript
复制
 const render = getRenderFuncFromSassImpl(options.implementation || require("sass"));

一切正常,css被编译..。但我所做的似乎是个黑客,

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

回答 2

Stack Overflow用户

发布于 2022-04-12 08:04:41

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

代码语言:javascript
复制
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作为依赖项列出?

票数 0
EN

Stack Overflow用户

发布于 2022-06-08 07:55:41

我为同样的问题而挣扎。最终起作用的是删除package-lock.json并重新安装所有的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71830681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档