Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

197
Visualizações
No se pueden usar exportaciones e importaciones en Electron.js

Aquí está mi archivo principal (index.js):

 const { app, BrowserWindow } = require("electron") var mainWindow = null app.on("ready", () => { mainWindow = new BrowserWindow({ "width": 500, "height": 500, "webPreferences": { "nodeIntegration": true, "contextIsolation": false } }) mainWindow.loadFile("src/html/welcome.html") })

Ahora, no puedo usar la importación/exportación.

Cada vez que agrego una declaración de exportación debajo del código anterior, aparece un error que dice Uncaught TypeError: Cannot read properties of undefined (reading 'on')

Si elimino las líneas de exportación/importación, funciona bien, como se esperaba

(índice.js)

 const { app, BrowserWindow } = require("electron") var mainWindow = null app.on("ready", () => { mainWindow = new BrowserWindow({ "width": 500, "height": 500, "webPreferences": { "nodeIntegration": true, "contextIsolation": false } }) mainWindow.loadFile("src/html/welcome.html") }) module.exports.updateFunction = (_name) => { console.log(_name) }

otro.js

 const { updateFunction } = require("../../index"); updateFunction("Hellow")

Mi estructura de archivos

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo que creo que está sucediendo aquí es que estás creando una dependencia circular para ti mismo. Puede ser útil si intenta seguir el camino que está tomando (o tratando de tomar) el cargador de módulos al cargar sus módulos:

  • Electron carga tu punto de entrada index.js
    • su punto de entrada carga todos sus submódulos usados
      • el submódulo another.js carga su módulo de punto de entrada index.js

En este punto, index.js no está completamente cargado ya que todas sus dependencias deben cargarse primero. La dependencia circular deja el cargador de módulos en un estado indefinido, que dependiendo de su implementación puede resultar en todo tipo de errores. Por lo general, es a lo largo de las líneas de

 some.stuff is not a function Cannot read property `XXX` of undefined `XXX` does not exist undefined index `#` of `XXX`

Hay formas de sortear estos errores, pero el enfoque más sencillo es evitar las dependencias circulares. En su caso, probablemente sería más fácil crear un módulo desde el que tanto su another.js como su index.js puedan importar:

 // someModule.js const { app, BrowserWindow } = require("electron") let mainWindow = null app.on("ready", () => { mainWindow = new BrowserWindow({ "width": 500, "height": 500, "webPreferences": { "nodeIntegration": true, "contextIsolation": false } }) mainWindow.loadFile("src/html/welcome.html") }) // you can export mainWindow if you need it module.exports.mainWindow = mainWindow; module.exports.updateFunction = (_name) => { console.log(_name) }
 // index.js const { mainWindow } = require('someModule');
 // another.js const { updateFunction } = require("../../someModule"); updateFunction("Hellow")

También recomendaría usar importaciones y exportaciones al estilo Es6, ya que son mucho más fáciles de comprender, pero esa es una historia diferente.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda