现象:构建后的代码存在大量闭包代码
// a.js
export default 'a-member'
// b.js
import addNumbers from './a'
console.log(addNumbers)
打包后:

导致的问题:
使用 Scope Hoisting:webpack 默认支持(mode: 'production')
要求:必须是 ES6 的语法,CJS 的方法不支持。
Webpack 3 需要添加 webpack.optimize.ModuleConcatenationPlugin()
// webpack.config.js
module.exports = {
//...
plugins: [
new webpack.optimize.ModuleConcatenationPlugin()
]
}
模块转换分析

结论:
__webpack_require__分析: