Puoi installare lodash.isequal
come un singolo modulo senza installare l'intero pacchetto lodash in questo modo:
npm install --save lodash.isequal
Quando si utilizzano i moduli ECMAScript 5 e CommonJS, lo si importa in questo modo:
var isEqual = require('lodash.isequal');
Utilizzando i moduli ES6, questo sarebbe:
import isEqual from 'lodash.isequal';
E puoi usarlo nel tuo codice:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Fonte: documentazione Lodash
Dopo l'importazione, puoi utilizzare la isEqual
funzione nel tuo codice. Nota che non fa parte di un oggetto denominato _
se lo importi in questo modo, quindi non lo
fai riferimento con _.isEqual
, ma direttamente con isEqual
.
Alternativa: utilizzo lodash-es
Come sottolineato da @kimamula :
Con webpack 4 e lodash-es 4.17.7 e versioni successive, questo codice funziona.
import { isEqual } from 'lodash-es';
Questo perché webpack 4 supporta il flag sideEffects e lodash-es
4.17.7 e versioni successive include il flag (che è impostato su false
).
Perché non utilizzare la versione con la barra?
Altre risposte a questa domanda suggeriscono che puoi anche usare un trattino invece di un punto, in questo modo:
import isEqual from 'lodash/isequal';
Anche questo funziona, ma ci sono due piccoli inconvenienti:
- Devi installare l'intero pacchetto lodash (
npm install --save lodash
), non solo il piccolo pacchetto separato lodash.isequal ; lo spazio di archiviazione è economico e le CPU sono veloci, quindi potrebbe non interessarti
- Il bundle risultante quando si utilizzano strumenti come webpack sarà leggermente più grande; Ho scoperto che le dimensioni dei pacchetti con un esempio di codice minimo
isEqual
sono in media del 28% più grandi (ho provato webpack 2 e webpack 3, con o senza Babel, con o senza Uglify)