有什么区别
import { pick } from 'lodash';
和
import pick from 'lodash/pick';
(Note第二个是'lodash/pick',而不是'lodash'。)它们各自如何影响捆绑包的大小?他们导入的lodash的部分是否完全相同?他们比较快吗?
'lodash/pick'
'lodash'
lodash
olqngx591#
lodash模块是一个 * 汇总模块 *,可以从其各个单独的模块(如lodash/pick)导入和重新导出。所以:
lodash/pick
pick
它们各自如何影响捆绑包的大小?这取决于你的摇树者能摇到什么程度。如果pick是你使用的lodash的唯一部分,并且你的编译器可以计算出来,它应该是相同的。但是摇树者在摇树的程度和质量上各不相同。他们进口的是完全一样的lodash零件吗?它们将相同的东西导入到 * 你的模块 * 中,但方式非常不同(见上文)。他们比较快吗?在运行时性能方面,它们应该大致相似,当然没有什么可担心的。在捆绑时间方面,你的打包者要做的工作越多,花费的时间就越长;这包括弄清楚,虽然你导入的是lodash,但你只使用了pick。如果您真的只需要pick,那么第二种形式应该可以减少编译器的工作量。但在大小等方面,您可能应该对特定的设置和整体代码进行试验,以确定哪一种更适合您。
1条答案
按热度按时间olqngx591#
lodash
模块是一个 * 汇总模块 *,可以从其各个单独的模块(如lodash/pick
)导入和重新导出。所以:
import { pick } from 'lodash';
加载完整的lodash
模块,然后只从其中导入一个函数。import pick from 'lodash/pick';
仅加载lodash/pick
模块并获取其默认导出(pick
)。它们各自如何影响捆绑包的大小?
这取决于你的摇树者能摇到什么程度。如果
pick
是你使用的lodash的唯一部分,并且你的编译器可以计算出来,它应该是相同的。但是摇树者在摇树的程度和质量上各不相同。他们进口的是完全一样的lodash零件吗?
它们将相同的东西导入到 * 你的模块 * 中,但方式非常不同(见上文)。
他们比较快吗?
在运行时性能方面,它们应该大致相似,当然没有什么可担心的。
在捆绑时间方面,你的打包者要做的工作越多,花费的时间就越长;这包括弄清楚,虽然你导入的是
lodash
,但你只使用了pick
。如果您真的只需要
pick
,那么第二种形式应该可以减少编译器的工作量。但在大小等方面,您可能应该对特定的设置和整体代码进行试验,以确定哪一种更适合您。