强制webpack在bundle中包含未引用的函数

时间:2018-03-29 20:47:38

标签: webpack

我有一些功能,我打算在Oracle开发的无关商业产品中使用。我将简单地包含javascript文件,然后在需要时引用供应商代码中的函数。但是,我想做一些转换,添加一些pollyfill,并在包含它之前缩小代码。我想用webpack自动化这个,但似乎因为我的入口点只包含未在入口点使用的函数,所以它们不包含在bundle中。我最终得到一个只包含webpack存根代码和babel-pollyfill代码的包。我的入口点没有任何功能。我搜索了文档,寻找一些选项,告诉它包括一切,但没有运气。有没有办法可以强制webpack在包中包含未引用的代码?

1 个答案:

答案 0 :(得分:0)

  1. 如果导出功能,则webpack将包含它们。
  2. webpack不会将所有函数公开给全局变量,在这种情况下,全局变量将被污染。

您需要使用webpack输出的库功能。

例如,您可以将函数导出到条目js文件中:

export function foo() {
    console.log(bar)
}

,在webpack.config.js文件中,您可以指定输出库:

module.exports = {
    //....,
    output:{
        library:'myLib'
    }
}

Webpack默认将库导出为变量,因此您可以将函数用作myLib.foo()。

您可以查看更多here