Búsqueda de sitios web

javascript - ¿Cómo importar bibliotecas que no están en el registro de npm en una aplicación construida con webpack?


Tengo una aplicación de React escrita en TypeScript que usa webpack para compilar. Hasta ahora, pude importar bibliotecas a través de la palabra clave import desde node_modules.

Sin embargo, hay algunas bibliotecas que me gustaría usar que no están en el registro de npm. Por lo tanto, no puedo hacer un npm install de estas bibliotecas. Por ejemplo, Papa Parse es una de las que no puedo encontrar su paquete npm. Por lo general, solo proporcionan un archivo js minificado que no puedo simplemente importar en mi archivo de Typescript.

Para aplicaciones que usan webpack para construir, ¿cómo puedo usar bibliotecas que no están en el registro de npm en mi código?

Respuesta #1

Para cualquier cosa que no tenga un paquete npm, tendrás que descargar el archivo y ponerlo en algún lugar de tu proyecto; recomendaría ponerlo en un directorio llamado vendor o lib.

La declaración import puede usar una ruta relativa al módulo que deseas usar, por lo que debería ser sencillo, por ejemplo, si colocas tu módulo de terceros en vendor/some-lib.js, lo importarías con:

// src/foo.js
import './../vendor/some-lib';

Si quieres ponerte elegante, puedes usar resolve.alias en la configuración de tu webpack para que nunca tengas que calcular la ruta relativa.

// webpack.config.js
const path = require('path');

// ...
resolve: {
  alias: {
    vendor: path.resolve(__dirname, 'vendor')
  }
},

// src/foo.js
import 'vendor/some-lib';

Respuesta #2

Puedes instalar bibliotecas alojadas en git así:

npm install git+ssh://[email :mholt/PapaParse.git#4.3.0

Tenga en cuenta que todo lo que esté después del hash debe ser un hash de commit o una etiqueta. Obtuve la 4.3.0 de aquí: https://github.com/mholt/PapaParse/releases

Si omites el hash, obtendrás la versión más reciente, pero ten en cuenta que cada vez que alguien haga una instalación nueva con npm install en tu base de código, existe la posibilidad de que descargue una versión con cambios incompatibles.

Artículos relacionados