Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!