首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Web Pack输出为库

将Web Pack输出为库
EN

Stack Overflow用户
提问于 2020-07-07 05:31:11
回答 1查看 15关注 0票数 0

我正在打包我们真正旧的JQuery代码,以便作为一个库公开。我已经成功地获得了最小化的输出,但无论我使用什么选项来表示库部分,它似乎根本无法识别该库。

下面是我最基本的设置,以及对我试图实现的目标的解释

代码语言:javascript
复制
const path = require('path');

module.exports = {
  entry: './public_html/path/to/mchn-old.js',
  output: {
    filename: 'mchn.js',
    path: path.resolve(__dirname, 'dist'),
    libraryTarget: 'var',
    library: 'MCHN',
  },
};

当我运行CLI来生成捆绑包时,一切都完成了,没有错误,但我换出了JS,它抛出了函数不存在的错误:

代码语言:javascript
复制
TypeError: MCHN.resizeMainElement is not a function
    at (index):126
    at pubads_impl_2020062201.js?21066633:6
    at qg (pubads_impl_2020062201.js?21066633:6)

这些函数是设置pre ES15类,看起来就像下面这样:

代码语言:javascript
复制
MCHN.waitForElement = function(selector, callback){
    // console.log($(selector).length);
    if ($(selector).length) {
        callback();
    } else {
        setTimeout(function() {
            MCHN.waitForElement(selector, callback);
        }, 100);
    }

}

如何更改webpack配置的设置,以便生成一个允许我调用以下内容的文件:

代码语言:javascript
复制
MCHN.waitForElement('#randomElement'); 

在文件被网络打包之后?

EN

回答 1

Stack Overflow用户

发布于 2020-07-08 00:14:49

好吧,我最终构建了每个库目标,看看我假设'var‘是正确的目标是否是错误的。这不是问题所在,问题是我没有在jQuery代码中包含模块导出对象。当我添加:

代码语言:javascript
复制
module.exports = {
    waitForElement: MCHN.waitForElement,
}

结合上面的配置,我能够调用库中的所有现有函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62764826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档