discord.js SyntaxError:意外的令牌? [复制]

Posted

技术标签:

【中文标题】discord.js SyntaxError:意外的令牌? [复制]【英文标题】:discord.js SyntaxError: Unexpected token? [duplicate] 【发布时间】:2021-11-23 10:28:02 【问题描述】:

我正在做 discord.js 入门机器人,但我总是收到此错误: SyntaxError:意外的令牌?

这是我使用的代码,实际上只是从他们的教程中复制和粘贴刚刚切换到 dotenv 的令牌...

 // Require the necessary discord.js classes
require("dotenv").config();
const  Client, Intents  = require('discord.js');

// Create a new client instance
const client = new Client( intents: [Intents.FLAGS.GUILDS] );

// When the client is ready, run this code (only once)
client.once('ready', () => 
    console.log('Ready!');
);

// Login to Discord with your client's token
client.login(process.env.TOKEN);

这些是我正在使用的 discord.js 和 dotenv 的版本。节点版本为 12.8.0

    "dependencies": 
    "discord.js": "^13.1.0",
    "dotenv": "^10.0.0"
  

已经感谢你们的帮助!

【问题讨论】:

你运行的是什么版本的nodejs? 您的 javascript 版本似乎存在问题。我会检查您是否至少针对 es6。看起来像一个简单的问题,您的编译器不理解空值合并运算符。或者只是将其更改为 || @UnholySheep 节点版本为 12.8.0 @jesper 12.8 已经很老了,被大多数软件包弃用了。我建议更新:nodejs.org/en/download @DarrowHartman 必须至少升级到 16.6.0 版才能正确使用 discord.js。 【参考方案1】:

所以首先要注意的是您的错误来自node_modules。这意味着出错的代码是您从npm 导入以执行某些操作的代码。因为可能工作的不是您的代码,而是第三方代码,这意味着错误很可能与您的代码版本或您使用该软件包的方式不正确有关。

我最好的猜测是它与包正在使用的一些高级语法有关,但是由于版本不兼容而导致您的机器上出现错误。我建议更新您的节点版本并重试。让我们知道这是否能解决问题!

下载最新节点版本:https://nodejs.org/en/download/

【讨论】:

这就是问题所在!谢谢你们!唯一奇怪的是,我使用 nvm 作为节点版本,它安装的最新版本只有 14.18.0。你知道为什么吗? @jesper 14.18.0 是当前的 LTS 版本,对于 ?? 运算符应该足够了 @UnholySheep 是的,但是 discord.js 本身说它需要至少节点 16.6.0 才能正常工作。

以上是关于discord.js SyntaxError:意外的令牌? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

discord.js SyntaxError:意外的令牌? [复制]

SyntaxError:意外的令牌'?'在 repl.it 中,因为我更新到 discord.js V13

Discord.js + Node.js: SyntaxError: Unexpected token ''

SyntaxError: Unexpected token '' Discord.js

discord.js / typescript / heroku / github:SyntaxError:不能在模块外使用导入语句

Discord.js SyntaxError: Unexpected Identifier (For command handler)