【问题标题】:configuration.module has an unknown property 'loaders'configuration.module 有一个未知的属性 'loaders'
【发布时间】:2018-08-28 11:28:58
【问题描述】:

我的错误输出:

配置对象无效。 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;

我的 webpack 版本:

webpack@4.1.1

【问题讨论】:

    标签: reactjs webpack


    【解决方案1】:

    您应该在 webpack 4 中将 loaders 更改为 rules

    改变:

    loaders 
    

    到:

    rules
    

    来源:Loaders

    例子:

    module.exports = {
      module: {
        rules: [
          { test: /\.css$/, use: 'css-loader' },
          { test: /\.ts$/, use: 'ts-loader' }
        ]
      }
    };
    

    【讨论】:

    • 是错字吗?在 webpack 4 中应该是 rules
    • 你应该在 webpack 4 中使用规则。
    • 将加载器更改为 webpack 4 中的规则...以防需要再说一遍:/
    • 您应该在回答中说明更改的原因是 webpack 4。
    【解决方案2】:

    在 webpack 4 中使用 rules 而不是 loaders

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

    【讨论】:

      【解决方案3】:

      你应该使用migration utility 来迁移你的 webpack 配置文件,它对我有用。

      migration documentation 也很有用。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

        • 我给了你一个提升。唯一的问题是人们想要升级框架和工具的版本以获得新功能而不是回到旧版本只是为了确保他们不必更改他们的配置文件。也许为了适应该工具的新工作方式而更改配置文件并不坏。除非那是不可能的。
        • 谢谢@Eniola,是的,你是对的。正如我所提到的,S.M_Emamian 的答案是正确的,但如果有人同意使用旧版本的 webpack,我的答案将有效。
        【解决方案5】:

        在 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' }
                ]
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2018-08-18
          • 1970-01-01
          • 2018-09-29
          • 2021-12-07
          • 2021-09-24
          • 1970-01-01
          • 2021-10-29
          • 2018-02-16
          • 2023-01-04
          相关资源
          最近更新 更多