【发布时间】:2016-10-01 17:37:10
【问题描述】:
我使用 angular2 CLI (ember cli) 生成了一个打字稿项目。我正在使用 Chromium Web Developer 工具进行调试。我在开发者工具设置中选择了“启用 javascript 源映射”。我看到源视图中列出了 .js 文件和 .ts。但是,当我选择它们时,.ts(打字稿)文件显示为空,即它找不到它们。
显示情况的屏幕打印:
如果我选择它们,我可以看到 .js 文件的文本。
.ts 文件没有复制到 dist 目录中,这对我来说似乎是个问题,但我看到 examples elsewhere 显示了典型的 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 问题还是 typescript 问题。
当控制台显示“blah.ts 中的第 52 行错误”时,这真的很痛苦,但我不能跳到那里并输入断点等。
有没有其他人幸运地在 Angular2 CLI 项目中使用源映射?
【问题讨论】:
标签: typescript angular angular-cli