Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
¿Cómo trabajar con paquetes ESM solo npm y paquetes npm normales en un solo archivo JavaScript?

Ok, soy relativamente nuevo en el desarrollo web. Y estaba tratando de requerir dos paquetes, a saber, franc y langs en mi archivo index.js. Entonces resulta que franc ahora es solo un paquete ESM y tengo que importarlo y mencionar type:module en mi archivo package.json. Pero si hago eso, no puedo requerir el paquete langs. Y si trato de importarlo, aparentemente devuelve una promesa. Y también si trato de acceder a las funciones de langs, dice que no es una función. Por ejemplo

 import {franc} from 'franc' const langs = import('langs'); const langCode = franc('Alle menslike wesens word vry') console.log(langCode) console.log(langs.where("3", "kor"));

Dice langs.where no es una función. ¿Puede alguien ayudar, por favor?

Y aquí está la promesa devuelta si escribo este código

 import {franc} from 'franc' const langs = import('langs'); const langCode = franc('Alle menslike wesens word vry') console.log(langCode) setTimeout(function(data){ console.log(langs) }, 1000)

Producción

 afr Promise { [Module: null prototype] { default: { all: [Function: allLanguages], has: [Function: hasLanguage], codes: [Function: getCodes], names: [Function: getNames], where: [Function: findBy] } } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para importar correctamente la biblioteca, deberá realizar cualquiera de las siguientes acciones

 import {franc} from 'franc' import langs from 'langs' const langCode = franc('Alle menslike wesens word vry') console.log(langCode) console.log(langs.where("3", "kor"));
 import {franc} from 'franc' const langs = require('langs'); const langCode = franc('Alle menslike wesens word vry') console.log(langCode) console.log(langs.where("3", "kor"));
 import {franc} from 'franc' const langsModule = await import('langs'); let langs = langsModule.default; const langCode = franc('Alle menslike wesens word vry') console.log(langCode) console.log(langs.where("3", "kor"));

Personalmente recomendaría tomar la primera ruta, pero técnicamente las 3 deberían funcionar. Puede encontrar más información sobre la declaración de importación en los documentos web de MDN .

En cuanto a la diferencia entre las tres opciones:

  • La primera opción utiliza la funcionalidad del módulo ES6 para importar la exportación predeterminada del paquete langs.
  • La segunda opción utiliza el mismo método que la primera, pero utiliza específicamente la funcionalidad de importación dinámica de los módulos ES6. Esto requiere esperar a que se cargue el archivo y seleccionar la propiedad predeterminada, pero ofrece la opción de cargar archivos de forma asíncrona.
  • La tercera opción utiliza el método CommonJS para cargar dependencias. Con este método, solo puede importar la exportación predeterminada, lo que significa que se debe cargar todo el archivo, lo que restringe el rendimiento. Esto también debe hacerse sincrónicamente.

Estapublicación SO ayuda a definir un par de diferencias entre el método ES6 y CommonJS.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda