在使用像SystemJS这样的模块加载器时,在Safari的Web Inspector中进行调试

时间:2017-01-11 15:05:00

标签: javascript safari ecmascript-6 systemjs web-inspector

我正在使用Ionices6 modulesTypeScript作为模块加载器创建SystemJS应用。这是我的设置:

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中调试的能力?我正在寻找比在每个脚本中放置调试器语句更复杂的解决方案......

3 个答案:

答案 0 :(得分:1)

好吧,也许您可​​以将 WebStorm 之类的IDE与强大的Web和Node调试器一起使用。

示例:

enter image description here enter image description here enter image description here

您可以了解有关WebStorm调试器here的更多信息。

WebStorm的一些替代方法:

  1. Atom(免费)
  2. Intellij IDEA(社区:免费)
  3. Visual Studio代码(免费)
  4. ...

P.S:我使用WebStorm:D开发Ionic和React应用程序

答案 1 :(得分:0)

您是否研究过使用远程调试器,例如https://github.com/google/ios-webkit-debug-proxy

也有ghostlab,这是一篇很好的入门指南https://css-tricks.com/using-chrome-devtools-to-debug-javascript-in-any-browser-with-ghostlab-2/

答案 2 :(得分:-4)

写入js文件关键字debugger,然后将inspect element打开到资源管理器

刷新页面和调试模式时...

享受它;-)