Obtengo un "Error de sintaxis no detectado: token inesperado". mensaje cuando intento usar mi aplicación Express en modo de depuración en VSCode (F5) si mi código incluye encadenamiento opcional (?.). No tengo este problema cuando uso la aplicación con el comando "npm start", que funciona correctamente. No tengo experiencia en la construcción de proyectos con una configuración muy específica (compiladores, encendedores...), este fue creado solo con npm init.
A continuación puedes ver los detalles que considero útiles para solucionar el problema. Déjame saber si necesitas algo más. ¿Puedo depurar la aplicación de todos modos si incluye una sintaxis de encadenamiento opcional? ¿Debo actualizar alguna versión? ¿Debo cambiar algún archivo de configuración?
Detalles:
nodo v16.10.0
npm v7.24.0
paquete.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" } }lanzamiento.json
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Iniciar el programa", "program": "${workspaceFolder}/backEnd/server/server.js" } ], }Tuve este mismo problema y degradar npm a la versión 6.14.16 es lo que funcionó para mí. Otro trabajo que estaba ejecutando mientras buscaba una solución era eliminar nodemon de los comandos de scripts de package.json y reemplazarlos solo con node
"scripts": { "start": "node js,json,html,yml,css server/server.js", "test": "echo \"Error: no test specified\" && exit 1" },y corriendo
nodemon --exec npm run startSin embargo, no estoy seguro de cuál es el problema exacto, pero parece estar relacionado con la ejecución del comando nodemon desde los scripts en el archivo package.json. Pude verificar esto simplemente ejecutando
npm run startcon los cambios de package.json mencionados anteriormente perfectamente bien, pero una vez que se cambió para ejecutarse con nodemon, me encontré con problemas con el encadenamiento opcional.
Finalmente encontré la solución, no estaba usando el depurador correcto, por lo que se trataba principalmente de un problema de configuración incorrecta de Visual Studio Code. Recientemente instalé otros depuradores, así que tuve que volver a configurar el depurador node.js.
¿Intentó cambiar a una versión de nodo diferente? Uso el nodo v14 y no tengo el problema, pero leí en otros sitios web que mencionaron que están usando v16 y también tienen problemas con el encadenamiento opcional.