Esto está relacionado con mi primera pregunta. Actualicé todos mis códigos. En mi bot.js es:
require('dotenv').config(); let ver = process.env.DISCORD_BOT; client.once('ready', async () => { if (ver === 'production') { client.user.setActivity(`in code land`, { type: 'PLAYING' }); } else { client.user.setActivity(`over ${client.guilds.cache.size} server(s)`, { type: 'WATCHING', status: 'IDLE', }); } console.log(`Logged in as ${client.user.tag}!`); console.log(`the prefix is ` + prefix); }); Procfile :
worker: node bot.js package.json :
"scripts": { "start": "node .", "test": "echo \"Error: no test specified\" && exit 1", "production": "NODE_ENV=production&&npm start", "development": "set NODE_ENV=development&&npm start" } .env :
DISCORD_BOT= TOKENCuando revisé los registros de la aplicación Heroku, aquí está el error:
2021-12-22T03:13:05.436081+00:00 aplicación[trabajador.1]: agente ??= nuevo https.Agente({ ...this.client.options.http.agent, keepAlive: true });
2021-12-22T03:13:05.436082+00:00 aplicación[trabajador.1]: ^^^
2021-12-22T03:13:05.436082+00:00 aplicación[trabajador.1]:
2021-12-22T03:13:05.436082+00:00 app[worker.1]: SyntaxError: Token inesperado '??='
Intenté buscar "SyntaxError: token inesperado '??='" y todos los resultados sugieren actualizar node.js a v16-17, pero ya estoy usando la última versión de Discord.js y Node. .js.
El error proviene de discord.js y se debe a que está utilizando una versión anterior de Node.js. El operador de asignación nulo lógico ( ??= ) solo está disponible en el nodo v15+ .
Puede pensar que está usando la última versión de Node.js, pero Heroku dice que "si no se especifica una versión de Node en el motor, se usará la versión 14.x" . Puede agregar una propiedad de engines a su archivo package.json para especificar la versión que necesita. Como discord.js v13 requiere node.js v16.6+ , puede agregar lo siguiente:
"engines": { "node": "16.6" }O para solicitar la última v16, agregue esto:
"engines": { "node": "16.x" }