美文网首页前端那些事Web前端之路@IT·互联网
webpack2的Tree sharking,你值得拥有

webpack2的Tree sharking,你值得拥有

作者: Lower的自我修养 | 来源:发表于2017-04-19 17:58 被阅读233次

    在2017年2月,webpack官方终于将npm上webpack的latest版本更新到了webpack2,这意味着以后我们默认执行npm install webpack的时候默认安装就是webpack2,这也意味着webpack2已经成熟,准备好替换原先的1版本,终于,这个时代的前端构建巨头,迎来了有史以来的最大一次更新。

    这个版本的webpack默认支持import export方式的模块加载方式,这给webpack带来了一项强大的功能:Tree shaking。这项功能有什么好处呢?我们来看下面这个例子:

    // a.js
    export function add(num1, num2) {
      return num1 + num2
    }
    
    export function reduce(num1, num2) {
      return num1 - num2
    }
    
    export default {
      add: add,
      reduce: reduce
    }
    
    // b.js
    import {add} from './a.js'
    
    console.log(add(1, 2))
    

    这时候我们用webpack打包b.js,在打包后的文件中会出现这样的代码:

    webpack

    这里有个/* unused harmony export reduce */,有了这句话,在我们使用webpack的UglifyJsPlugin的时候,就会将reduce函数的代码删除。需要注意的是,如果我们在a.js中加入export default {add, reduce},在b.js中通过import a from './a.js',来调用,那么就无法使用tree sharking,这时候我们可以怎么办呢?可以这么写import * as a from './a.js'

    相关文章

      网友评论

        本文标题:webpack2的Tree sharking,你值得拥有

        本文链接:https://www.haomeiwen.com/subject/ibrhzttx.html