0

我正在将一个使用 webpack 的项目从 v4 升级到 v5,虽然现在所有编译都没有错误(经过一些最小的调整),但我注意到输出格式完全不同。在 v4 下,它的外部结构如下:

(function(modules) {
...
});

而现在在 v5 中,它的结构如下:

(() => {
...
})();

认为这对我们项目中使用输出的特定方式造成了问题(具体来说,后者似乎被调用,但前者似乎没有被调用)。

是否有更改 v5 中默认输出的设置?

我尝试查看output.iife文档中的(无效果)和其他内容,但没有看到适合我的内容。我确定我遗漏了一些明显的东西。

更新:

有了@felixmosh 的回答,我就成功了。现在使用函数语法而不是 lambda 语法是一致的,但仍然存在一个问题,即 v5 变体似乎是自执行的,而 v4 不是。

我根据 webpack 入门示例在 GitHub 上添加了一个 repro: https ://github.com/tlmii/webpack-v4-to-v5-example

4

1 回答 1

1

您可以将 webpack 的目标指定为es.

module.exports = {
  // ...
  target: ['web', 'es5']
};
于 2020-12-31T20:37:47.070 回答