[译]webpack官网文档 :指南 -- 24.Tree Shaking
原创翻译,转载请注明出处。
原文地址:https://webpack.js.org/guides/tree-shaking/
Tree shaking是一个术语,通常用于JavaScript的上下文来消除没有作用的代码,或者精确讲,保留有用代码。它依赖于ES2015中针对于其模块系统里静态构造的引入/导出。它的名字和概念由ES2015模块打包器rollup而广为人知。
Webpack2对ES2015模块提供了一个内置的支持,用来检测对未使用模块的导出。
例子
假设一个maths.js库文件导出两个函数,square和cube:
// This function isn't used anywhere exportfunctionsquare(x){ return x * x; } // This function gets included exportfunctioncube(x){ return x * x * x; }
在我们的main.js里我们只导入cube:
import{cube}from'./maths.js'; console.log(cube(5));// 125
运行node_modules/.bin/webpack main.js dist.js,然后查看dist.js发现square并没有被导出。
/* ... webpackBootstrap ... */ /******/([ /* 0 */ /***/(function(module, __webpack_exports__, __webpack_require__){ "use strict"; /* unused harmony export square */ /* harmony export (immutable) */ __webpack_exports__["a"]= cube; // This function isn't used anywhere functionsquare(x){ return x * x; } // This function gets included functioncube(x){ return x * x * x; } /***/}), /* 1 */ /***/(function(module, __webpack_exports__, __webpack_require__){ "use strict"; Object.defineProperty(__webpack_exports__,"__esModule",{ value:true}); /* harmony import */var __WEBPACK_IMPORTED_MODULE_0__maths_js__ =__webpack_require__(0); console.log(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__maths_js__["a"/* cube */])(5));// 125 /***/})
当运行产品编译时运行node_modules/.bin/webpack --optimize-minimize main.js dist.min.js,只有cube的压缩版,而square在编译中没有被保留。
/* ... */ function(e,t,n){"use strict";functionr(e){return e*e*e}t.a=r} /* ... */ function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);console.log(n.i(r.a)(5))}
链接
Tree shaking with webpack 2, TypeScript and Babel
Tree-shaking with webpack 2 and Babel 6
webpack 2 Tree Shaking Configuration
-- End --
相关推荐
不知道该写啥QAQ 2020-11-12
webfullStack 2020-11-09
Yvettre 2020-09-15
想做大牛的蜗牛 2020-10-30
gloria0 2020-10-26
gaojie0 2020-09-11
SelinaChan 2020-08-14
不知道该写啥QAQ 2020-08-09
gloria0 2020-08-09
不知道该写啥QAQ 2020-08-02
hline 2020-07-29
SelinaChan 2020-07-28
wangdianyong 2020-07-23
webpackvuees 2020-07-23
yqoxygen 2020-07-20
不知道该写啥QAQ 2020-07-18
waterv 2020-07-18
81463166 2020-07-17