我正在尝试从 VSCode 调试我用 ES6 编写的 nodejs 应用程序。 但它抛出以下错误:
node --debug-brk=18712 --nolazy index.js
Debugger listening on [::]:18712
/Users/rsiva/Projects/Siva/ntask/ntask-api/index.js:1
(function (exports, require, module, __filename, __dirname) { import express from "express";
^^^^^^
SyntaxError: Unexpected token import
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Timeout.Module.runMain [as _onTimeout] (module.js:604:10)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
我看过 How do I debug vue js application in VS Code?和 https://medium.com/@katopz/how-to-debug-es6-nodejs-with-vscode-8d00bd6c4f94#.yaevayjs3但这些解决方案不起作用。
我的 package.json:
{
"name": "ntask-api",
"version": "1.0.0",
"description": "Task list API",
"main": "index.js",
"scripts": {
"start": "babel-node index.js"
},
"author": "Siva",
"dependencies": {
"babel-cli": "^6.5.1",
"babel-preset-es2015": "^6.5.0",
"consign": "^0.1.2",
"express": "^4.13.4",
"sequelize": "^3.19.2",
"sqlite3": "^3.1.8"
},
"devDependencies": {
"babel-register": "^6.18.0"
},
"babel": {
"presets": [
"es2015"
],
"sourceMaps": true,
"retainLines": true
}
}
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}/index.js",
"cwd": "${workspaceRoot}",
"sourceMaps": true
},
{
"type": "node",
"request": "attach",
"name": "Attach to Process",
"port": 5858
}
]
}
我知道我正在使用 babel-node 从控制台正常运行应用程序以使用 ES6,但是如何让 VSCode 使用 babel-node 而不是 Node ?
最佳答案
需要将launch.json配置文件中的runtimeExecutable
设置为babel-node路径的值。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch via Babel",
"program": "${workspaceRoot}/index.js",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/babel-node",
"cwd": "${workspaceRoot}"
}
]
}
关于javascript - 如何在 VSCode 编辑器中调试 NodeJS(ES6) 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948471/