Sto creando un Ionic
applicazione utilizzando es6 modules
, TypeScript
e SystemJS
come un caricatore modulo. Questa è la mia configurazione:
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>
script di esempio (TypeScript):
import {IConfig} from "./app-config";
export class ConfigLoader {
...
}
Tutto funziona alla grande in Chrome. Tuttavia, durante il debug utilizzando il Web Inspector di Safari, non posso inserire alcun punto di interruzione negli script perché Web Inspector mostra solo gli script caricati direttamente dall'HTML (tramite i tag di script) e non gli script caricati da XHR (nel mio caso, da SystemJS) . Ciò significa che non posso eseguire il debug dei miei script, il che è ovviamente inaccettabile.
Ho provato a aggirare questo problema usando SystemJS come prima, ma anche inserendo i tag script nell'html, in questo modo:
<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>
Tuttavia, questo non funziona, poiché SystemJS non sembra felice di questo:
Chiamata System.register non valida. Le chiamate anonime System.register possono essere effettuate solo da moduli caricati da SystemJS.import e non tramite tag di script.
Come uso SystemJS e allo stesso tempo ho la possibilità di eseguire il debug in Safari? Sto cercando una soluzione un po 'più sofisticata di "inserire un'istruzione debugger in ogni script" ...
debugger
parola chiave JS