使用 ECMA 6 和 webpack 4 的自定义 Javascript 库

Custom Javascript library using ECMA 6 and webpack 4

我的 sum.js 文件如下

var mathOp = {
            sum : function(a,b){
                return a+b;
            }
        }     
export default mathOp;

我的 index.js 文件如下(稍后会有多个导入文件和 tree shaking)

import mathOp from "./sum";
export default mathOp;

我已经使用 webpack 为以上两个文件制作了一个捆绑文件 bundle.js,并在 index.html 文件中调用了 bundle.js,如下所示

<script type="text/javascript" src="/bundle.js"></script></body>

现在我想在 index.html 文件中调用 mathOp.sum 函数,如下所示

 <script type="text/javascript">
    $(document).ready(function(){
      var result = mathOp.sum(2,5);
      console.log(result); 
 });        
 </script>

但是我做不到?谁能指导我怎么做?

正如@loganfsmyth 所指出的 默认情况下,webpack 不能公开任何来自 bundle.js

的函数

为此,我们需要将 JS 文件配置为 webpack.config.js 中的库,如下所示

module.exports = {
  //...
  output: {
    library: 'MyBundle'
  }
}

现在我们可以使用下面的求和函数了

<script type="text/javascript">
    $(document).ready(function(){
      var result = MyBundle.mathOp.sum(2,5);
      console.log(result); 
 });        
</script>

更多参考,请参考https://webpack.js.org/configuration/output/#output-library