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

170
Vistas
Actualice TODOS los comandos del bot sin recargarlo (sin "nodo" o nodemon)

Quiero actualizar mi código de comandos sin reiniciar el bot completamente usando nodemon o solo node . Quería hacer un comando que pueda enviar para actualizar todos los comandos en mi bot (básicamente, la colección de comandos donde están y su código almacenado). Aquí está el código que traté de usar:

 const { glob } = require('glob') const { promisify } = require('util') const globPromise = promisify(glob); await client.commands.clear() const commandFiles = await globPromise(`${process.cwd()}/commands/**/*.js`); commandFiles.map((value) => { const file = require(value); const splitted = value.split("/"); const directory = splitted[splitted.length - 2]; if (file.name) { const properties = { directory, ...file }; client.commands.set(file.name, properties); } })

El resultado dice que mi código funcionó pero los comandos no se actualizan, ¿cómo puedo solucionarlo? Por si acaso: mi versión de djs es v13.2.0

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

0

El uso de esta función elimina el caché correspondiente al módulo/archivo y obtiene la versión actualizada:

 function requireUncached(module) { delete require.cache[require.resolve(module)]; return require(module); }

Ahora, para requerir los archivos, simplemente reemplace require con requireUncached .

Sin embargo, es posible que deba actualizar cada evento para evitar que se actualice tarde.

 client.on("messageCreate", msg => { client.commands.clear(); const files = fs.readdirSync("./commands") //read commands folder const folders = files.filter(f => !f.includes(".")) //get category folders for (const folder of folders) { const cmdFiles = fs.readdirSync(`./commands/${folder}`).filter(f => f.endsWith(".js")) //get cmd files in each folder for (const file of cmdFiles) { const f = requireUncached(`./commands/${folder}/${file}`) //require the file "uncached" client.commands.set(f.name, f) } } })

Puede haber formas más eficientes de hacer esto, asegurándose de que no tenga que actualizar cada evento

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