“import * as”是否比特定命名导入效率低? [复制]

2024-01-27

假设我有一个模块foo像这样:

export const f = x => x + 1;

export const g = x => x * 2;

我可以像这样使用这个模块:

import { f, g } from 'foo';

console.log(f(g(2)));

或者像这样:

import * as foo from 'foo';

console.log(foo.f(foo.g(2)));

我更喜欢第二种方式,因为它可以防止模块之间的名称冲突。

然而,是import *效率较低?它是否会阻止捆绑程序(例如 Rollup 和 Webpack)发现未使用的导入并删除它们?


当您将导入指定为import { f, g } from 'foo';您可以保证在编译速度和包大小方面获得更好的性能,因为您将只获得所需的依赖项。

注意:正如 loganfsmyth 指出的那样,最近的一些编译器/包只能引用实际正在使用的内容,这个 IMO 是一个额外的步骤,可能会花费一些编译时间(尽管我没有时间对这个假设进行基准测试)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“import * as”是否比特定命名导入效率低? [复制] 的相关文章

随机推荐