【问题标题】:Why is Webpack adding brackets to this line of code?Webpack 为什么要在这行代码中加括号?
【发布时间】:2017-11-07 09:54:08
【问题描述】:

我正在使用 Webpack 连接和丑化几个不同的模块,我将所有这些模块都导入到我的 main.js 文件中。

其中一个模块包括以下代码行:

jQuery(document).ready(function(){
    new Favorites.Factory;
});

但是在Webpack生成的main.js文件中,那几行代码变成了:

jQuery(document).ready(function(){
    new Favorites.Factory(); // Note the extra brackets
});

请注意在 Factory 之后添加的括号。这会产生以下错误:

Uncaught TypeError: Favorites.Factory is not a constructor

为什么 Webpack 会添加这些括号,我该如何防止呢?

您可以查看完整的模块 here(它是一个 Wordpress 插件)。

【问题讨论】:

  • 我看不到在哪种情况下应该使用 new 关键字调用工厂。在我看来,问题不在于括号,而是在静态工厂中使用 new ...

标签: javascript wordpress webpack


【解决方案1】:

从技术上讲,我可以很容易地回答您的问题: webpack 加括号就是因为这个reason

所以,不是 webpack 是导致此错误的原因。

您的帖子中没有太多信息(例如 main.js 中发生的事情、您“包含”模块的方式、您的 webpack 配置等),但我尝试运行您的代码并做出了一些假设: error 对于您的特定情况,意味着 Favorites.Factoryundefined,很可能是因为 favorites_data 未在模块 init 上定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2016-07-17
    • 2017-09-08
    • 2011-08-17
    相关资源
    最近更新 更多