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

S.M*_*ian 116 reactjs webpack

我输出的错误:

配置对象无效.Webpack已使用与API架构不匹配的配置对象进行初始化. - configuration.module有一个未知的属性'loaders'.这些属性是有效的:object {exprContextCritical?,exprContextRecursive?,exprContextRegExp?,exprContextRequest?,noParse ?, rules?,defaultRules?,unknownContextCritical?,unknownContextRecursive?,unknownContextRegExp?,unknownContextRequest?,unsafeCache?,wrappedContextCritical?,wrappedContextRecursive?,wrappedContextRegExp ?,strictExportPresence?,strictThisContextOnImports?} - >影响正常模块的选项(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;
Run Code Online (Sandbox Code Playgroud)

我的webpack版本:

webpack@4.1.1
Run Code Online (Sandbox Code Playgroud)

S.M*_*ian 270

您应该在webpack 4中更改loadersrules:

更改:

loaders 
Run Code Online (Sandbox Code Playgroud)

至:

rules
Run Code Online (Sandbox Code Playgroud)

来源:https://webpack.js.org/concepts/loaders/#example

例:

module.exports = {
  module: {
    rules: [
      { test: /\.css$/, use: 'css-loader' },
      { test: /\.ts$/, use: 'ts-loader' }
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)

  • 您应该在回答中解释更改的原因是 webpack 4。 (4认同)
  • 这是一个错字吗?它应该是 webpack 4 中的 `rules`。 (2认同)
  • 将加载器更改为webpack 4中的规则...如果需要再次说:/ / (2认同)

小智 11

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

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