configuration.module 有一个未知的属性 'loaders'

IT技术 reactjs webpack
2021-04-03 11:28:26

我的错误输出:

无效的配置对象。Webpack 已使用与 API 架构不匹配的配置对象进行初始化。- configuration.module 有一个未知的属性 'loaders'。这些属性是有效的: object { exprContextCritical?、exprContextRecursive?、exprContextRegExp?、exprContextRequest?、noParse?、rules?、defaultRules?、unknownContextCritical?、unknownContextRecursive?、unknownContextRegExp?、unknownContextRequest?、wrappedContextRecursive?、wrappedContextRecursive?、 ?,strictExportPresence?,strictThisContextOnImports? } -> 影响正常module的选项 ( NormalModuleFactory)。

我的 webpack.config.js:

var webpack = require('webpack');
var path = require('path');

var BUILD_DIR = path.resolve(__dirname, 'src/client/public');
var APP_DIR = path.resolve(__dirname, 'src/client/app');

var config = {
  entry: APP_DIR + '/index.jsx',
  module : {
    loaders : [
      {
        test : /\.jsx?/,
        include : APP_DIR,
        loader : 'babel-loader'
      }
    ]
  },
  output: {
    path: BUILD_DIR,
    filename: 'bundle.js'
  }

};


module.exports = config;

我的 webpack 版本:

webpack@4.1.1
5个回答

您应该在 webpack 4 中更改loadersrules

改变:

loaders 

到:

rules

来源:装载机

例子:

module.exports = {
  module: {
    rules: [
      { test: /\.css$/, use: 'css-loader' },
      { test: /\.ts$/, use: 'ts-loader' }
    ]
  }
};
您应该在回答中解释更改的原因是 webpack 4。
2021-06-01 11:28:26
这是一个错字吗?它应该rules在 webpack 4 中。
2021-06-05 11:28:26
将加载器更改为 webpack 4 中的规则...以防需要再次说明:/
2021-06-08 11:28:26
你应该使用 webpack 4 中的规则。
2021-06-20 11:28:26

rules在 webpack 4 中使用而不是loaders.

https://webpack.js.org/concepts/loaders/

您应该使用迁移实用程序来迁移您的 webpack 配置文件,它对我有用。

迁移文档也很有用。

上面给出的答案是有效的,但我们可以通过将 webpack 和 webpack-dev-server 版本更改为

"webpack": "3.8.1",
"webpack-dev-server": "2.9.4"

它也可以解决问题。希望它会有所帮助。

我给你加分了。唯一的问题是人们想要升级框架和工具的版本以获得新功能,而不是回到旧版本只是为了确保他们不必更改他们的配置文件。也许费心去更改配置文件以与工具的新工作方式保持一致也不错。除非那是不可能的。
2021-05-22 11:28:26
谢谢@Eniola,是的,你是对的。正如我提到的 S.M_Emamian 答案是正确的,但如果有人同意使用旧版本的 webpack,我的答案将起作用。
2021-06-07 11:28:26

在 webpack.config.js 下为我工作

module.exports = {
    entry: [
        '.src/index.js'
    ],
    output:{
        path: __dirname,
        filename: 'app/js/main.js'
    },
    module:{
        rules: [
          { test: /\.css$/, use: 'css-loader' },
          { test: /\.ts$/, use: 'ts-loader' }
        ]
    }
}