【问题标题】:Getting Error from webpack-cli: "TypeError: merge is not a function" in webpack config从 webpack-cli 获取错误:webpack 配置中的“TypeError:merge is not a function”
【发布时间】:2023-03-20 14:00:01
【问题描述】:

我正在使用 webpack-merge 将两个 webpack.config 文件组合在一起,但我不断收到错误消息 “TypeError:当我运行命令“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
 
})

【问题讨论】:

    标签: reactjs webpack webpack-4 webpack-cli webpack-merge


    【解决方案1】:

    您错误地导入了merge。试试这样:

    const { merge } = require('webpack-merge');
    

    统一更新: 基于following changelog,从webpack-merge 5.0.3 及更高版本开始,您应该使用我上面提供的代码。如果版本低于5.0.3,则需要使用:

    const merge = require('webpack-merge');
    

    【讨论】:

    • 修复了它我很困惑,因为我有另一个项目以另一种方式编写它并且工作正常我会认为这是一个版本问题
    • 是的,这是一个版本问题,因为它在 Webpack v^4.2.2 中没有大括号但在 v^5.1.1 中没有大括号
    • 不工作"webpack": "^5.3.2", "webpack-merge": "^4.2.2"
    • 基于following changelog,从webpack-merge 5.0.3 及更高版本开始,您应该使用我在解决方案中提供的代码。如果版本低于5.0.3,则需要使用const merge = require('webpack-merge');
    • 像这样的重大变化是 Javascript 开发令人难以置信的令人沮丧的部分原因。 (谢谢,顺便说一句!)
    【解决方案2】:

    您也可以使用 cmd 执行此操作。

    webpack -m -c ./webpack.config.js -c ./webpack.dev.js
    

    或者您可以在 package.json 中创建一个脚本以便更快地使用

      "scripts": {
        "build:dev": "webpack -m -c ./webpack.config.js -c 
        ./webpack.dev.js",
      },
    

    【讨论】:

      猜你喜欢
      • 2023-01-05
      • 2017-10-12
      • 2022-08-11
      • 2021-04-02
      • 1970-01-01
      • 2017-04-01
      • 2017-03-22
      • 2017-11-02
      • 1970-01-01
      相关资源
      最近更新 更多