Разница между "import {pick} из 'lodash';" и "импортировать выбор из 'lodash / pick';" - PullRequest
0 голосов
/ 15 ноября 2018

Какая разница между

import { pick } from 'lodash';

и

import pick from 'lodash/pick';

(Обратите внимание, что во втором случае 'lodash/pick', а не просто 'lodash'.)

Как они влияют на размер пакета?

Импортируют ли они точно такие же части lodash?

Они сравнительно быстрые?

1 Ответ

0 голосов
/ 15 ноября 2018

Модуль lodash - это модуль свертки , который импортирует и реэкспортирует из своих отдельных отдельных модулей, таких как lodash/pick.

Итак:

  • import { pick } from 'lodash'; загружает полный модуль lodash, а затем импортирует из него только одну функцию.
  • import pick from 'lodash/pick'; загружает только модуль lodash/pick и получает его экспорт по умолчанию (pick).

Как каждый из них влияет на размер пакета?

Это зависит от степени, в которой ваш упаковщик может выполнять встряхивание дерева.Если pick - единственная часть lodash, которую вы используете, и ваш компоновщик может понять это, она должна быть примерно такой же.Но комплектующие различаются по степени и качеству встряхивания деревьев.

Импортируют ли они точно такие же части lodash?

Импортирует одно и то же к вашему модулю , но совсем другими способами (см. Выше).

Они сравнительно быстрые?

С точки зрения производительности во время выполнения онидолжно быть примерно одинаковым, конечно, не о чем беспокоиться.

С точки зрения времени компоновки, чем больше работы должен выполнить ваш компоновщик, тем дольше это займет;это включает в себя выяснение того, что, хотя вы импортируете lodash, вы используете только pick.

Если вам действительно нужен только pick, вторая форма должна сократить нагрузку на упаковщик.

Но с точки зрения размера и т. Д. Вы, вероятно, должны поэкспериментировать с вашей конкретной настройкой и вашим общим кодом, чтобы выяснить, что лучше для вас.

...