因为只有模块是静态导入时,treeshaking才有效果,commonjs可以有如下写法
if(flag){
require('./a.js')
}else{
require('./b.js')
}
我是这样理解的,在代码没有运行之前,还无法确实什么模块会被引用,也就是无法确定依赖图,依赖图都没有确定,在运行时,怎么treeshaking??
而esmodule,只能静态导入,不能有这样的写法
if(flag){
import './a.js'
}else{
import './b.js'
}
只能有这样的写法
import './a.js'
import './b.js'
webpack在代码运行前就会分析依赖图,在运行时进行treeshaking
标签:为什么,commonjs,js,treeshaking,import,写法,依赖图 From: https://www.cnblogs.com/jjfgogo/p/17209169.html