我有以下目录:
.vscode
-- launch.json
-- tasks.json
build
-- script
-- -- main.js
-- -- main.js.map
node_modules
src
-- script
-- -- main.ts
-- typings
-- tsd.json
gulpfile.js
当然还有其他东西,比如自述文件和node_modules的内容等等。
无论如何,我的launch.json看起来如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "debug",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/src/script/main.ts",
"stopOnEntry": true,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"preLaunchTask": "build",
"outDir": "${workspaceRoot}/build/script/",
"sourceMaps": true
},
{
"name": "attach",
"type": "node",
"request": "attach",
"port": 5858
}
]}
和我的gulpfile,用于构建如下的打字脚本:
gulp.task('typescript', function() {
gulp.src('./src/script/**/*.ts')
.pipe(ts({
noImplicitAny: true,
target: 'ES6',
module: 'commonjs',
removeComments: true
}))
.pipe(sourcemaps.init())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./build/script/'));
});
现在回到我的问题:
正如标题中所说,VS Code启动调试器,它实际上可以工作,但它调试的是main.js文件,而不是main.ts文件。
据我所知,我必须将main.ts设置为程序参数,将包含js文件的目录设置为outDir 目前我有点不知所措,因为我觉得我的配置是正确的,但出于某种原因,很明显,事实并非如此。 也许有人能看到我犯的错误:)
我也遇到了类似的问题。首先,尝试从launch.json.执行js文件
然后,您还需要在项目的根目录中有一个tsconfig.json文件,即使您使用gump进行编译也是如此。此文件有一个"sourceMap"参数,该参数需要设置为true,以便能够使用源映射调试ts文件。
tsconfig.json文件示例:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}