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

558
Vistas
La ejecución de una biblioteca JS empaquetada en un paquete web con el sistema de módulos "umd" en Nodejs arroja un error: "self" no está definido

Recientemente, he estado desarrollando una biblioteca de JavaScript y ahora quiero publicarla en npm. Luego aprendí que tengo que usar un empaquetador de paquetes. Así que comencé a aprender webpack y seguí su guía Creación de una biblioteca de los documentos.

En su guía, sugirieron usar el tipo de módulo umd para admitir todos los sistemas de módulos, así que usé "umd". Pero cuando traté de ejecutar (a través de la importación ) el archivo de paquete generado en Node.js , arroja una excepción que dice " self está definido" . Luego abrí el archivo incluido y descubrí que hay una variable llamada self pero no sé cuál es su propósito.

En pocas palabras, probé el tipo de módulo commonjs y commonjs2 y publiqué un paquete de prueba y lo probé tanto en el entorno de reacción como en el de nodo y funcionó perfectamente. Lamentablemente, no funcionó en el entorno del navegador con la etiqueta <script> . Ahora mi pregunta es ¿qué tipo de módulo debo usar?

Aquí está mi webpack.config.js

 const path = require("path"); module.exports = { mode: "production", entry: "./src/index.js", output: { path: path.resolve(__dirname, "dist"), filename: "index.js", library: { type: "commonjs", // umd, commonjs2, .... }, }, };

Aquí está la estructura de mi proyecto.

 |- /dist |- /src |- package.json |- webpack.config.json

Versiones de paquetes web:

 "webpack": "^5.53.0" "webpack-cli": "^4.8.0"

Gracias por adelantado. Aprecio mucho su tiempo en StackOverflow <3.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Después de perder mucho tiempo, encontré la respuesta en un problema de github de webpack.

Puedo usar library.type: "umd" pero solo tengo que agregar lo siguiente en la configuración de mi paquete web.

 module.exports = { output: { globalObject: 'this' // This line was missing } }
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