Możesz zainstalować lodash.isequal
jako 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 isEqual
funkcji 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-es
4.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
isEqual
są średnio o 28% większe (wypróbowano webpack 2 i webpack 3, z Babel lub bez, z Uglify lub bez)