Saltar al contenido

¿Cómo importar una única función Lodash?

Solución:

Puedes instalar lodash.isequal como un solo módulo sin instalar todo lodash paquete así:

npm install --save lodash.isequal

Cuando utilice los módulos ECMAScript 5 y CommonJS, lo importe así:

var isEqual = require('lodash.isequal');

Usando módulos ES6, esto sería:

import isEqual from 'lodash.isequal';

Y puedes usarlo en tu código:

const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};

isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false

Fuente: documentación de Lodash

Después de importar, puede utilizar el isEqual función en su código. Tenga en cuenta que no es parte de un objeto llamado _ si lo importa de esta manera, entonces
no referencialo con _.isEqual, pero directamente con isEqual.

Alternativa: usar lodash-es

Como lo señaló @kimamula:

Con webpack 4 y lodash-es 4.17.7 y superior, este código funciona.

import { isEqual } from 'lodash-es';

Esto se debe a que el paquete web 4 admite el indicador sideEffects y lodash-es 4.17.7 y superior incluye la bandera (que se establece en false).

¿Por qué no utilizar la versión con barra?
Otras respuestas a esta pregunta sugieren que también puede usar un guión en lugar de un punto, así:

import isEqual from 'lodash/isequal';

Esto también funciona, pero hay dos inconvenientes menores:

  • Tienes que instalar todo lodash paquete (npm install --save lodash), no solo los pequeños separados lodash.isequal paquete; el espacio de almacenamiento es barato y las CPU son rápidas, por lo que es posible que esto no le importe
  • El paquete resultante al usar herramientas como webpack será un poco más grande; Descubrí que los tamaños de paquete con un ejemplo de código mínimo de isEqual son en promedio un 28% más grandes (probé webpack 2 y webpack 3, con o sin Babel, con o sin Uglify)

Si solo quieres incluir isEqual y no el resto de la lodash funciones (útiles para mantener el tamaño de su paquete pequeño), puede hacer esto en ES6;

import isEqual from 'lodash/isEqual'

Esto es más o menos lo mismo que se describe en el lodash README, excepto que allí usan require() sintaxis.

var at = require('lodash/at');

Con webpack 4 y lodash-es 4.17.7 y superior, este código funciona.

import { isEqual } from 'lodash-es';

Esto se debe a que webpack 4 admite sideEffects flag y lodash-es 4.17.7 y superior incluye el flag (que se establece en false).

Editar

A partir de la versión 1.9.0, Parcel también admite "sideEffects": false, por lo tanto import { isEqual } from 'lodash-es'; También se puede sacudir el árbol con Parcel.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *