Правильный способ, чтобы импортировать лодашь



у меня была обратная связь с запросом pull ниже, просто интересно, какой способ является правильным способом импорта lodash?




вам лучше сделать импорт has из 'lodash / has'.. Для более ранней версии
из lodash (v3), который сам по себе довольно тяжелый, мы должны только импортировать
специальный модуль / функция вместо импорта всего lodash
библиотека. Не уверен в новой версии (v4).




import has from 'lodash/has';


vs



import { has } from 'lodash';


спасибо

509   3  

3 ответов:

import has from 'lodash/has'; лучше, потому что lodash содержит все свои функции в одном файле, поэтому вместо того, чтобы импортировать всю библиотеку "lodash" в 100k, лучше просто импортировать has функция, которая может быть 2k.

если вы используете webpack 4, следующий код является дерево shakable.

import { has } from 'lodash-es';

моменты;

  1. CommonJS модули не дерево shakable так что вы обязательно должны использовать lodash-es, которая является библиотекой Lodash, экспортируемой как модули ES, а не lodash (CommonJS).

  2. lodash-es's пакет.json содержит "sideEffects": false, который уведомляет webpack 4, что все файлы внутри пакета являются ли побочные эффекты свободными (см. https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free).

  3. эта информация имеет решающее значение для дерева встряхивания, так как модуль bundlers не дерево встряхнуть файлы, которые, возможно, содержат побочные эффекты, даже если их экспортированные члены не используются в любом месте.

Edit

начиная с версии 1.9.0, пакет также поддерживает "sideEffects": false, threrefore import { has } from 'lodash-es'; также дерево встряхивается с посылкой. Он также поддерживает дерево встряхивания CommonJS модулей, хотя это, вероятно, дерево встряхивания ES модулей является более эффективным, чем CommonJS в соответствии с мой эксперимент.

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

у него есть несколько ограничения:

  • вы должны использовать импорт ES2015 для загрузки Lodash
  • Babel
  • цепи последовательности не поддерживаются. Смотрите это блоге для альтернативы.
  • блоков пакеты методом не поддерживаются

Comments

    Ничего не найдено.