【发布时间】:2020-04-10 22:30:24
【问题描述】:
我已将我的 webpack 从 3.8.1 迁移到 4.41.2。我一直面临独立 javascript 文件中“this”上下文的问题。请检查以下代码:
util.js
export const calculateSum = (a,b) => {
this.sum = 0;
this.sum += a + b;
return this.sum;
};
请注意,上面是描述问题的示例代码。
在使用 webpack 3.8.1 时,我能够使用上面示例中使用的“this”对象,但在迁移到 4.41.2 后,我无法这样做。
我在非常大的代码库中有很多这样的情况,所以到处更改代码是不可行的。在 webpack 配置中找不到这样的选项。
如何在新版本的 webpack 中修复?
【问题讨论】:
-
“我不能这样做”——请更清楚地描述这意味着什么:是否有任何错误消息?预期的行为是什么?观察到的行为是什么?
-
@PatrickHund 在使用 webpack 3.8.1 时,每个文件都有自己的上下文,在
this中可用,这不过是普通的 javascript 对象。将其升级到 4.41.2 后,this上下文不可用,现在this的值未定义,因此在我使用过this.something之类的代码中,由于this的值现在未定义,因此在代码中出现了中断。我希望这可以解决您的问题,如果您有任何其他疑问,请告诉我。 -
@HridayModi 创建一个小 git repo 来重现问题,我会看看。
-
这个函数的 webpack 结果如何?