Jestem tworzenia Ionic
aplikacji z wykorzystaniem es6 modules
, TypeScript
a SystemJS
jako ładowarka modułu. To jest moja konfiguracja:
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>
przykładowy skrypt (TypeScript):
import {IConfig} from "./app-config";
export class ConfigLoader {
...
}
W Chrome wszystko działa świetnie. Jednak podczas debugowania za pomocą Safari Web Inspector nie mogę umieścić żadnych punktów przerwania w skryptach, ponieważ Web Inspector pokazuje tylko skrypty ładowane bezpośrednio z HTML (przez tagi skryptów), a nie skrypty ładowane przez XHR (w moim przypadku przez SystemJS) . Oznacza to, że nie mogę debugować własnych skryptów, co jest oczywiście niedopuszczalne.
Próbowałem to obejść, używając SystemJS, jak wcześniej, ale także umieszczając tagi skryptu w html, na przykład:
<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>
Jednak to nie działa, ponieważ SystemJS nie wydaje się być z tego zadowolony:
Nieprawidłowe wywołanie System.register. Anonimowe wywołania System.register mogą być wykonywane tylko przez moduły ładowane przez SystemJS.import, a nie przez znaczniki skryptu.
Jak korzystać z SystemJS i jednocześnie mieć możliwość debugowania w Safari? Szukam rozwiązania nieco bardziej wyrafinowanego niż `` umieść instrukcję debuggera w każdym skrypcie '' ...
debugger
słowa kluczowego JS