<SKYLER/>
为什么chainWebpack通过oneOf添加loader不起作用
Back to Blog
August 12, 2022(updated December 9, 2022)webpack, chainWebpack

🧸为什么chainWebpack通过oneOf添加loader不起作用

项目中使用umi开发项目,现在需要用style-resources-loader这个webpack loader来自动引入less变量

  1. 通过指定一个oneOf的name来添加
config.module
      .rule("less")
      .test(/\\.less$/)
      .oneOf("css-modules")
      .use("style-resources-loader")
      .loader("style-resources-loader")
      .options({
        patterns: [
          path.resolve(__dirname, "./src/variables.less"),
          path.resolve(__dirname, "./src/mixins.less"),
        ],
        injector: "append",
      })
      .end();

怎么知道oneOf的name,可以通过config.module.rule("less").test(/\.less$/).oneOfs.entries()来查看要添加到哪个

  1. 给oneOf中所有的条件都添加上style-resources-loader
memo.module
      .rule("less")
      .test(/\\.less$/)
      .oneOfs.values()
      .forEach((item) => {
        item
          .use("style-resources-loader")
          .loader("style-resources-loader")
          .options({
            patterns: [
              path.resolve(__dirname, "./src/variables.less"),
              path.resolve(__dirname, "./src/mixins.less"),
            ],
            injector: "append",
          })
          .end();
      });