2016-06-14 43 views
0

我正在開發一個節點模塊和一個示例應用程序。我試圖將調試斷點添加到模塊中的某個源文件,但我無法讓VSC識別它。使用最新版本的Typescript和VSC。打字稿源中的斷點不起作用

編輯:這應該是一個節點應用程序,沒有瀏覽器擔心。

EDIT2:這是正回購與發行repo with problem. 這裏是我的當前設置

├── dist 
│   ├── index.d.ts 
│   ├── index.js 
│   ├── index.js.map 
│   ├── main.d.ts 
│   ├── main.js 
│   ├── main.js.map 
├── examples 
│   ├── index.js 
│   └── package.json 
├── gulpfile.js 
├── package.json 
├── src 
│   ├── index.ts 
│   ├── main.ts 
├── tsconfig.json 
├── tslint.json 

我正在開發中examples/index.js的例子,我在src/main.ts

此設置斷點是我的VSC launch.json配置

{ 
    "version": "0.2.0", 
    "configurations": [ 
    { 
     "name": "Launch TypeScript", 
     "type": "node", 
     "request": "launch", 
     "program": "${workspaceRoot}/examples/index.js", 
     "sourceMaps": true, 
     "outDir": "${workspaceRoot}/src", 
     "args": [ 
     "--nolazy" 
     ] 
    } 
    ] 
} 

我tsconfig.json

{ 
    "compilerOptions": { 
     "target": "es2015", 
     "module": "commonjs", 
     "sourceMap": true, 
     "outDir": "dist", 
     "declaration": true, 
     "rootDir": "src" 
    }, 
    "exclude": [ 
     "node_modules", 
     "examples", 
     "dist" 
    ] 
} 

我一飲而盡任務

gulp.task('default', function() { 
    var tsResult = tsProject.src('tsconfig.json') 
    .pipe(sourcemaps.init()) 
    .pipe(ts(tsProject)); 

    return merge([ 
     tsResult.dts.pipe(gulp.dest('dist')), 
     tsResult.js 
     .pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: 'src'})) 
     .pipe(gulp.dest('dist')) 
    ]); 
}); 

如何sourcemaps來了把

{"version":3,"sources":["main.ts"],"names":[],"mappings":";CAAC,...CAAC","file":"main.js","sourceRoot":"src"} 
+0

打字稿文件永遠不會被執行,它們會被轉換爲Javascript,這就是運行的內容。我不確定您是否可以在VS中的JavaScript文件中放入代碼中斷,但是您可以使用開發人員工具。 –

+0

我還應該澄清,這些是節點應用程序 – wasdwasdwasd

+0

哦,那麼我不知道,對不起。 –

回答

1

Visual Studio代碼正在使用「程序」來引用相應的「outDir」中的文件名「index.js」。在你的情況下,它正在尋找「dist/index.js」。

備用條目文件引起混淆。爲避免名稱衝突,「examples/index.js」需要是「dist」中不存在的唯一文件名(exampleApp.js?)。

0

你可能需要改變 「OUTDIR」 到「$ {} workspaceRoot/DIST」。節點調試器使用該標誌來查找您生成的腳本。