有一个模块用作命名空间(出于可测试性原因或其他原因):
export function bar() {}
export function baz() {
this.bar();
}
export function qux() {}
这可以被认为是一种不好的做法,因为baz
取决于上下文,不能单独作为命名导出导入:
import * as Foo from './foo';
Foo.baz();
是否可以安全地假设this.bar
不会影响树摇动机制,而bar
和qux
会被树木震动?
是否可以让捆绑器了解bar
和baz
之间的关系,因此如果Foo.baz
正在使用中,则只有qux
是树摇动的?
这个问题主要针对Webpack树摇晃,但也欢迎其他捆绑者(Rollup)的解释。