配置对象无效。 Webpack 已使用与 ReactJS 中的 API 模式不匹配的配置对象进行初始化

Posted

技术标签:

【中文标题】配置对象无效。 Webpack 已使用与 ReactJS 中的 API 模式不匹配的配置对象进行初始化【英文标题】:Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema in ReactJS 【发布时间】:2020-01-23 02:56:17 【问题描述】:

由于配置对象与 API 架构不匹配,无法构建生产模式。将 webpack@3.0.0 更新到版本 webpack@4.40.2 后发生错误。我更新了 webpack 版本,因为 extract-text-webpack-plugin 与 webpack@3.0.0 不兼容。

下面是我运行 yarn run build:prod(生产模式)时出现的终端错误

下面是 webpack.config.js 文件

const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = (env)=>
  const isProduction = env === 'production';
  const CSSExtract = new ExtractTextPlugin('styles.css');

  console.log('env', env);
  return 
    entry: './src/app.js',
    output: 
      path: path.join(__dirname, 'public'),
      filename: 'bundle.js'
    ,
    module: 
      rules: [
        loader: 'babel-loader',
        test: /\.js$/,
        exclude: /node_modules/
      ,
        test: /\.s?css$/,
        use: CSSExtract.extract(
          use: [
            'css-loader',
            'sass-loader'
          ]
        )
      ]
    ,
    plugin: [
      CSSExtract
    ],
    devtool: isProduction ? 'source-map' : 'cheap-module-eval-source-map',
    devServer: 
      contentBase: path.join(__dirname, 'public'),
      historyApiFallback: true
    
  
  
  
;

下面是package.json文件


  "name": "expensify-app",
  "version": "1.0.0",
  "main": "index.js",
  "author": "Andrew Mead",
  "license": "MIT",
  "scripts": 
    "serve": "live-server public/",
    "build:dev": "webpack",
    "build:prod": "webpack -p --env production",
    "dev-server": "webpack-dev-server",
    "test": "jest"
  ,
  "dependencies": 
    "babel-cli": "6.24.1",
    "babel-core": "6.25.0",
    "babel-loader": "7.1.1",
    "babel-plugin-transform-class-properties": "6.24.1",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-preset-env": "1.5.2",
    "babel-preset-react": "6.24.1",
    "css-loader": "0.28.4",
    "enzyme": "3.0.0",
    "enzyme-adapter-react-16": "1.0.0",
    "jest": "20.0.4",
    "live-server": "^1.2.0",
    "moment": "^2.24.0",
    "node-sass": "4.5.3",
    "normalize.css": "7.0.0",
    "npm": "^6.11.3",
    "raf": "3.3.2",
    "react": "16.0.0",
    "react-addons-shallow-compare": "^15.6.2",
    "react-dates": "^21.1.0",
    "react-dom": "16.0.0",
    "react-modal": "2.2.2",
    "react-redux": "5.0.5",
    "react-router-dom": "^5.0.1",
    "react-test-renderer": "16.0.0",
    "redux": "^4.0.4",
    "sass-loader": "6.0.6",
    "style-loader": "0.18.2",
    "uuid": "^3.3.3",
    "validator": "8.0.0",
    "webpack": "^4.40.2",
    "webpack-dev-server": "2.5.1"
  ,
  "devDependencies": 
    "extract-text-webpack-plugin": "^3.0.2",
    "webpack-cli": "^3.3.9"
  

【问题讨论】:

【参考方案1】:

在您的 Webpack 配置中将“插件”更改为“插件”

【讨论】:

我遇到了另一个错误 (node:4232) DeprecationWarning: Tapable.plugin 已被弃用。改为在 .hooks 上使用新 API

以上是关于配置对象无效。 Webpack 已使用与 ReactJS 中的 API 模式不匹配的配置对象进行初始化的主要内容,如果未能解决你的问题,请参考以下文章

在 REACT 上安装 webpack 时出错:配置对象无效。 Webpack 已使用配置对象初始化

配置对象无效。 Webpack 已使用与 Angular 中的 API 架构不匹配的配置对象进行初始化

ValidationError:无效的配置对象。 Webpack 已使用与 API 架构不匹配的配置对象进行初始化。 Next.js

Webpack 无效的配置对象

webpack 中的配置对象无效

Webpack 2 - 'Debug'出错