我已经使用 angular2 CLI(ember cli)生成了一个打字稿项目。我正在使用 Chromium Web Developer 工具进行调试。我在开发者工具设置中选择了“启用 javascript 源映射”。我看到源视图中列出了 .js 文件和 .ts。但是,当我选择 .ts (打字稿)文件时,它们显示为空,即无法找到它们。
显示情况的屏幕打印:
如果我选择它们,我可以看到 .js 文件的文本。
.ts 文件没有复制到 dist 目录中,这对我来说似乎是个问题,但我在其他地方看到了显示典型 angular2 cli dist 结构的示例,它们也没有 .ts 文件。
我的“tsconfig.json”的相关部分显示我启用了源映射:
1 "compileOnSave": false,
2 "compilerOptions": {
3 "declaration": false,
4 "emitDecoratorMetadata": true,
5 "experimentalDecorators": true,
6 "mapRoot": "",
7 "module": "system",
8 "moduleResolution": "node",
9 "noEmitOnError": true,
10 "noImplicitAny": false,
11 "outDir": "../dist/",
12 "rootDir": ".",
13 "sourceMap": true,
14 "sourceRoot": "/",
15 "target": "es5"
16 },
js.map 文件被生成并驻留在.js 文件旁边的dist目录中。
示例映射文件(部分):
{"version":3,"file":"app.js","sourceRoot":"/","sources":["app.ts"],"names":[],"mappings":";;;;;;;;;;;;;YAGA,mB
我试过:
1)将.ts文件从src复制到dist。
2) 手动编辑 app.js.map 文件的各种尝试,例如sourceRoot和sources。
不太清楚 js.map 文件中的“/”指的是什么:项目的 src 目录还是 dist 目录?如果我编辑 .js.map 文件,是否必须刷新浏览器才能继续使用它?
我认为基本问题是它在 src 目录中寻找 ts 文件,这超出了浏览器的范围(因为它位于“../src”)。
Chromium 将 ts 文件的路径显示为“ http://localhost:4202/app/cpp-scenes.ts ”。但是当我把 .ts 文件放在那里时,没有骰子。
我不知道这是 js 映射问题、Angular 2 问题、Angular2 CLI 问题还是打字稿问题。
当控制台说“blah.ts 中的第 52 行错误”时,这真的很痛苦,但我不能跳到那里并输入断点等。
有没有其他人有幸在 Angular2 CLI 项目中使用源映射?