我正在使用es6模块
、TypeScript
和SystemJS
作为模块加载器创建一个Ionic
应用程序。这是我的设置:
tsconfig.json:
{
"compilerOptions": {
...
"target": "es5",
"module": "system",
...
}
}
index.html:
<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script>System.import('js/app.js')</script>
示例脚本(TypeScript):
import {IConfig} from "./app-config";
export class ConfigLoader {
...
}
在Chrome浏览器中一切运行良好。然而,使用Safari的Web Inspector进行调试时,我无法在脚本中放置任何断点,因为Web Inspector仅显示直接从HTML(通过脚本标记)加载的脚本,而不是由XHR(在我的情况下,由SystemJS)加载的脚本。这意味着我不能调试自己的脚本,这当然是不可接受的。
我尝试通过像以前一样使用SystemJS,但同时也将脚本标签放置在HTML中来解决此问题:
<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="js/app-config.js"></script>
... other app scripts
<script>System.import('js/app.js')</script>
然而,这样做是不行的,因为SystemJS对此似乎并不满意:
无效的System.register调用。匿名的System.register调用只能由通过SystemJS.import加载的模块进行, 而不能通过脚本标签加载。
我该如何在使用SystemJS的同时能够在Safari中进行调试?我正在寻找一个比“在每个脚本中放置调试器语句”更复杂一点的解决方案...
debugger
关键字进行 JavaScript 调试。 - Kamil Kiełczewski