Вы можете установить lodash.isequal
как один модуль, не устанавливая весь пакет lodash , например:
npm install --save lodash.isequal
При использовании модулей ECMAScript 5 и CommonJS вы затем импортируете их следующим образом:
var isEqual = require('lodash.isequal');
Используя модули ES6, это будет:
import isEqual from 'lodash.isequal';
И вы можете использовать это в своем коде:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Источник: документация Lodash
После импорта вы можете использовать isEqual
функцию в своем коде. Обратите внимание, что это не часть объекта с именем, _
если вы импортируете его таким образом, поэтому вы
не ссылаетесь на него _.isEqual
, а напрямую с isEqual
.
Альтернатива: Использование lodash-es
Как указал @kimamula :
Этот код работает с webpack 4 и lodash-es 4.17.7 и выше.
import { isEqual } from 'lodash-es';
Это связано с тем, что webpack 4 поддерживает флаг sideEffects, а lodash-es
версия 4.17.7 и выше включает флаг (для которого установлено значение false
).
Почему бы не использовать версию с косой чертой?
Другие ответы на этот вопрос предполагают, что вы также можете использовать тире вместо точки, например:
import isEqual from 'lodash/isequal';
Это тоже работает, но есть два незначительных недостатка:
- Вам необходимо установить весь пакет lodash (
npm install --save lodash
), а не только небольшой отдельный пакет lodash.isequal ; место для хранения дешевое, а процессоры быстрые, поэтому вам может быть все равно
- Полученный пакет при использовании таких инструментов, как webpack, будет немного больше; Я обнаружил, что размеры
isEqual
пакетов с минимальным примером кода в среднем на 28% больше (пробовал webpack 2 и webpack 3, с или без Babel, с или без Uglify)