我正在练习使我的 webpack 包更小,并使用 webpack 的包分析器,我看到一个非常重的包被包含在两个不同的异步块中,即使它只使用了一次。在对我的代码进行了一些挖掘之后,我意识到这可能是因为以下情况:
文件1.js
import { foo } from 'ReallyHeavyPackage'
export function a(): string {
console.log("called a()");
}
export function b(): string {
return foo();
}
文件2.js
import { a } from './file1.js'
a();
文件 3.js
import { b } from './file1.js'
b();
我假设由于 file1 全局导入重包,而 file2 从 file1 导入一个函数,因此它将重包作为依赖项获取,即使它没有导入实际使用该包的函数。我希望(或者更确切地说,希望)只有 file3 的块包含重度依赖项,因为它是唯一使用它的地方。
我应该以特定的方式处理这样的导入吗?也许我可以在 webpack 中做一个神奇的配置来帮助解决这个问题,一种更好的构建模块/函数的方法,或者只是更好的导入函数/模块/包的方法?
我正在使用 webpack 4,我在 ES2017