Vous pouvez installer en lodash.isequal
tant que module unique sans installer l'ensemble du package lodash comme ceci:
npm install --save lodash.isequal
Lorsque vous utilisez les modules ECMAScript 5 et CommonJS, vous les importez ensuite comme ceci:
var isEqual = require('lodash.isequal');
En utilisant des modules ES6, ce serait:
import isEqual from 'lodash.isequal';
Et vous pouvez l'utiliser dans votre code:
const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};
isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false
Source: documentation Lodash
Après l'importation, vous pouvez utiliser la isEqual
fonction dans votre code. Notez qu'il ne fait pas partie d'un objet nommé _
si vous l'importez de cette façon, vous
ne le référencez donc pas avec _.isEqual
, mais directement avec isEqual
.
Alternative: utilisation lodash-es
Comme l'a souligné @kimamula :
Avec webpack 4 et lodash-es 4.17.7 et supérieur, ce code fonctionne.
import { isEqual } from 'lodash-es';
Ceci est dû au fait que webpack 4 prend en charge l' indicateur sideEffects et que la version lodash-es
4.17.7 et supérieure inclut l'indicateur (qui est défini sur false
).
Pourquoi ne pas utiliser la version avec le slash?
D'autres réponses à cette question suggèrent que vous pouvez également utiliser un tiret au lieu d'un point, comme ceci:
import isEqual from 'lodash/isequal';
Cela fonctionne aussi, mais il y a deux inconvénients mineurs:
- Vous devez installer tout le package lodash (
npm install --save lodash
), pas seulement le petit package séparé lodash.isequal ; l'espace de stockage est bon marché et les processeurs sont rapides, vous pouvez donc ne pas vous en soucier
- Le bundle résultant lors de l'utilisation d'outils comme webpack sera légèrement plus grand; J'ai découvert que les tailles de bundle avec un exemple de code minimal de
isEqual
sont en moyenne 28% plus grandes (essayé webpack 2 et webpack 3, avec ou sans Babel, avec ou sans Uglify)