在node.js应用程序的调试模式(VSCode)下使用可选链接(ES2020)时出现语法错误



我得到一个"未捕获的语法错误:意外的标记"如果我的代码包括可选链接(?.(,则当我尝试在VSCode(F5(的调试模式下使用我的express应用程序时,将显示消息。当我使用带有命令"的应用程序时,我没有这个问题;npm启动";其正常工作。我没有构建具有非常特定配置(编译器、打火机…(的项目的经验,这个项目只是用npm init创建的。

下面你可以看到我认为对解决这个问题有用的细节。如果你还需要什么,请告诉我。如果应用程序包含可选的链接语法,我是否可以调试它?我应该更新任何版本吗?我应该更改任何配置文件吗?

详细信息:
节点v16.10.0
npm v7.24.0

软件包.json

"main": "server/server.js",
"scripts": {
"start": "nodemon -e js,json,html,yml,css server/server.js",
"test": "echo "Error: no test specified" && exit 1"
},
"repository": {
"type": "git",
},
"license": "ISC",
"dependencies": {
"@marsaud/smb2": "^0.17.2",
"bcrypt": "^5.0.1",
"body-parser": "^1.19.0",
"compression": "^1.7.4",
"cookie-parser": "^1.4.5",
"cors": "^2.8.5",
"equals": "^1.0.5",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"moment": "^2.24.0",
"mongodb": "^3.6.5",
"mssql": "^7.2.1",
"nodemailer": "^6.4.10",
"nodemon": "^2.0.7",
"redoc": "^2.0.0-rc.24",
"swagger-jsdoc": "^4.0.0",
"tedious": "^14.0.0",
"underscore": "^1.9.1"
}
}

launch.json

{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Iniciar el programa",
"program": "${workspaceFolder}/backEnd/server/server.js"
}
],

}

您是否尝试切换到不同的节点版本?我使用node v14,没有问题,但我在其他网站上读到,他们使用的是v16,可选链接也有问题。

我也遇到了同样的问题,将npm降级到版本6.14.16对我来说很有效。我在搜索解决方案时运行的另一项工作是从包中删除nodemon。json脚本命令,并将其替换为node

"scripts": {
"start": "node js,json,html,yml,css server/server.js",
"test": "echo "Error: no test specified" && exit 1"
},

和运行

nodemon --exec npm run start

虽然不确定确切的问题是什么,但它似乎与从package.json文件中的脚本中运行nodemon命令有关。我能够通过简单地运行来验证这一点

npm run start

上面提到的package.json更改非常好,但一旦它被更改为使用nodemon运行,我就会遇到可选链接的问题。

我终于找到了解决方案,我没有使用正确的调试器,所以这主要是Visual Studio代码错误的配置设置问题。我最近安装了一些其他调试器,所以我不得不再次设置node.js调试器。

最新更新