从“ lib”导入{fn1}与从“ lib”导入fn1

时间:2019-06-25 00:46:52

标签: javascript npm webpack lodash

我正在从lodash导入一些函数,而我的同事告诉我,最好是分别导入每个函数,而不是将它们作为一个组导入。

当前方法:

import {fn1, fn2, fn3} from 'lodash';

首选方法:

import fn1 from 'lodash';
import fn2 from 'lodash';
import fn3 from 'lodash';

她的推理是,后者将导入较少的代码,因为它不会导入整个lodash库。

是这样吗?

3 个答案:

答案 0 :(得分:2)

您想要的(以及首选的)称为tree shaking

  

摇树是   在捆绑过程中删除未使用的代码。

执行此操作并利用树抖动的正确方法是:

import foo from 'lodash/foo' // <-- only import `foo`

不会摇树:

import { foo } from 'lodash'

显然是这样:

import _ from 'lodash' 

对此语法的支持已在Lodash v4中实现。

您可以阅读more here

答案 1 :(得分:1)

根据我发现的来源,import x from y;y导入默认导出,并在文件中将其命名为x

因此,您的首选方法是使用3种不同的变量名称导入默认导出3次...

首选方法在生产中起作用吗?

来源:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

https://medium.com/javascript-in-plain-english/javascript-modules-for-beginners-56939088f7d9

答案 2 :(得分:0)

我确实相信import {fn1, fn2, fn3} from 'lodash';是导入不同模块导出的正确方法,但是,我认为使用这种方法可能会更好

    import {
      fn1, 
      fn2, 
      fn3
    } from 'lodash';

因为不再需要它们,删除它们会更容易