Możesz zainstalować lodash.isequaljako pojedynczy moduł bez instalowania całego pakietu lodash w następujący sposób:
npm install --save lodash.isequal
Korzystając z modułów ECMAScript 5 i CommonJS, importujesz je w następujący sposób:
var isEqual = require('lodash.isequal');
Używając modułów ES6, byłoby to:
import isEqual from 'lodash.isequal';
I możesz go użyć w swoim kodzie:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Źródło: dokumentacja Lodash
Po zaimportowaniu możesz użyć tej isEqualfunkcji w swoim kodzie. Zauważ, że nie jest to część obiektu nazwanego, _jeśli importujesz go w ten sposób, więc
nie odwołujesz się do niego _.isEqual, ale bezpośrednio za pomocąisEqual .
Alternatywa: używanie lodash-es
Jak wskazał @kimamula :
Ten kod działa z pakietem webpack 4 i lodash-es 4.17.7 i nowszymi.
import { isEqual } from 'lodash-es';
Dzieje się tak, ponieważ webpack 4 obsługuje flagę sideEffects, a lodash-es4.17.7 i nowsze zawierają flagę (która jest ustawiona na false).
Dlaczego nie używać wersji z ukośnikiem?
Inne odpowiedzi na to pytanie sugerują, że możesz również użyć myślnika zamiast kropki, na przykład:
import isEqual from 'lodash/isequal';
To też działa, ale są dwie drobne wady:
- Musisz zainstalować cały pakiet lodash (
npm install --save lodash), a nie tylko mały oddzielny pakiet lodash.isequal ; przestrzeń dyskowa jest tania, a procesory są szybkie, więc możesz nie przejmować się tym
- Wynikowy pakiet podczas korzystania z narzędzi takich jak webpack będzie nieco większy; Dowiedziałem się, że rozmiary paczek z minimalnym przykładem kodu
isEqualsą średnio o 28% większe (wypróbowano webpack 2 i webpack 3, z Babel lub bez, z Uglify lub bez)