javascript 导出方法如何影响树摇动?

xzv2uavs  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(124)

对于实用函数和常量,我通常使用命名导出。

//utilities.js
export function someFunction(param){...}
export function someFunction2(param){...}

//someModule.js
import {someFunction} from "./utilities.js"

但有时,我将它们导出为默认对象。

//styleUtilities.js
export function someFunction(param){...}
export function someFunction2(param){...}
export default {someFunction, someFunction2}

//someModule.js
import styleUtilities from "./styleUtilities" 

const {someFunction} = styleUtilities

导出为默认对象时,是否会中断Webpack中未使用值的树抖动?

xoshrz7s

xoshrz7s1#

导出为默认对象时,是否会中断Webpack中未使用值的树抖动?
是的。
记住所有样式实用程序都在styleUtilities下可能会很方便。
为此,您应该在utilities.js模块中使用命名导出,然后在someModule.js中导入该模块时,使用命名空间导入语法:

import * as styleUtilities from "./utilities.js";

styleUtilities.someFunction();

这将是still allow tree-shaking,并为模块的使用者提供导入样式的选择(而不是将对象强加给他们)。

相关问题