I am trying to debug my nodejs application written in ES6 from VSCode. But this causes the following error:
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)
I looked at How to debug a vue js application in VS Code? and https://medium.com/@katopz/how-to-debug-es6-nodejs-with-vscode-8d00bd6c4f94#.yaevayjs3 , but these solutions do not work.
My 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 } ] }
I understand that I use babel-node to run the application, usually from the console, to use ES6, but how to enable VSCode to use babel-node instead of node ?