Você pode instalar lodash.isequal
como um único módulo sem instalar todo o pacote lodash da seguinte maneira:
npm install --save lodash.isequal
Ao usar os módulos ECMAScript 5 e CommonJS, você os importa da seguinte maneira:
var isEqual = require('lodash.isequal');
Usando os módulos ES6, isso seria:
import isEqual from 'lodash.isequal';
E você pode usá-lo em seu código:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Fonte: documentação do Lodash
Após a importação, você pode usar a isEqual
função no seu código. Observe que ele não faz parte de um objeto nomeado _
se você o importar dessa maneira; portanto
, não faça referência a ele _.isEqual
, mas diretamente a ele isEqual
.
Alternativa: Usando lodash-es
Como apontado por @kimamula :
Com o webpack 4 e o lodash-es 4.17.7 e superior, esse código funciona.
import { isEqual } from 'lodash-es';
Isso ocorre porque o webpack 4 suporta o sinalizador sideEffects e lodash-es
4.17.7 e superior inclui o sinalizador (que está definido como false
).
Por que não usar a versão com a barra?
Outras respostas a esta pergunta sugerem que você também pode usar um traço em vez de um ponto, assim:
import isEqual from 'lodash/isequal';
Isso funciona também, mas há duas desvantagens menores:
- Você precisa instalar o pacote lodash inteiro (
npm install --save lodash
), não apenas o pequeno pacote lodash.isequal ; o espaço de armazenamento é barato e as CPUs são rápidas, então você pode não se importar com isso
- O pacote resultante ao usar ferramentas como o webpack será um pouco maior; Descobri que os tamanhos dos pacotes com um exemplo de código mínimo
isEqual
são em média 28% maiores (tentei o webpack 2 e o webpack 3, com ou sem Babel, com ou sem Uglify)