Я создаю приложение Ionic
с использованием es6 modules
, TypeScript
и 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? Я ищу решение немного сложнее, чем "поставить инструкцию отладчика в каждый скрипт"...