Правильный способ, чтобы импортировать лодашь
у меня была обратная связь с запросом pull ниже, просто интересно, какой способ является правильным способом импорта lodash?
вам лучше сделать импорт has из 'lodash / has'.. Для более ранней версии
из lodash (v3), который сам по себе довольно тяжелый, мы должны только импортировать
специальный модуль / функция вместо импорта всего lodash
библиотека. Не уверен в новой версии (v4).
import has from 'lodash/has';
vs
import { has } from 'lodash';
спасибо
3 ответов:
import has from 'lodash/has';лучше, потому что lodash содержит все свои функции в одном файле, поэтому вместо того, чтобы импортировать всю библиотеку "lodash" в 100k, лучше просто импортироватьhasфункция, которая может быть 2k.
если вы используете webpack 4, следующий код является дерево shakable.
import { has } from 'lodash-es';моменты;
CommonJS модули не дерево shakable так что вы обязательно должны использовать
lodash-es, которая является библиотекой Lodash, экспортируемой как модули ES, а неlodash(CommonJS).
lodash-es's пакет.json содержит"sideEffects": false, который уведомляет webpack 4, что все файлы внутри пакета являются ли побочные эффекты свободными (см. https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free).эта информация имеет решающее значение для дерева встряхивания, так как модуль bundlers не дерево встряхнуть файлы, которые, возможно, содержат побочные эффекты, даже если их экспортированные члены не используются в любом месте.
Edit
начиная с версии 1.9.0, пакет также поддерживает
"sideEffects": false, threreforeimport { has } from 'lodash-es';также дерево встряхивается с посылкой. Он также поддерживает дерево встряхивания CommonJS модулей, хотя это, вероятно, дерево встряхивания ES модулей является более эффективным, чем CommonJS в соответствии с мой эксперимент.
Если вы используете babel, вы должны проверить babel-plugin-lodash, это будет вишня-выбрать части lodash вы используете для вас, меньше хлопот и меньший пакет.
у него есть несколько ограничения:
- вы должны использовать импорт ES2015 для загрузки Lodash
- Babel
- цепи последовательности не поддерживаются. Смотрите это блоге для альтернативы.
- блоков пакеты методом не поддерживаются
Comments