从 webpack-cli 中获取错误:webpack 配置中的“TypeError:merge is not a function”

Bab*_*der 36 reactjs webpack webpack-4 webpack-cli webpack-merge

我正在使用 webpack-merge 将两个 webpack.config 文件组合在一起,但我不断收到错误“TypeError:merge is not a function when I run the command”webpack --config ./config/webpack.config.prod.js ”

有没有其他人遇到过这个问题?

webpack.config.prod.js

const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent');
const TerserPlugin = require('terser-webpack-plugin');
const commonConfig= require('./webpack.config.common');
const merge = require('webpack-merge');

module.exports = merge(commonConfig, {

    //config code
 
})
Run Code Online (Sandbox Code Playgroud)

Rus*_*9RS 91

您导入merge不正确。像这样尝试:

const { merge } = require('webpack-merge');
Run Code Online (Sandbox Code Playgroud)

UPD: 基于以下更改日志,从webpack-merge5.0.3 及更高版本开始,您应该使用我上面提供的代码。如果版本低于5.0.3,则需要使用:

const merge = require('webpack-merge');
Run Code Online (Sandbox Code Playgroud)

  • 修复了它,我很困惑,因为我有另一个项目,它以另一种方式编写,并且工作正常,我假设这是一个版本问题 (6认同)
  • 是的,这是一个版本问题,因为它在 Webpack v^4.2.2 中没有大括号的情况下工作,但在 v^5.1.1 中则不行 (6认同)