Estoy creando una Ionic
aplicación usando es6 modules
, TypeScript
y SystemJS
como un cargador de módulos. Esta es mi configuración:
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 de ejemplo (TypeScript):
import {IConfig} from "./app-config";
export class ConfigLoader {
...
}
Todo funciona muy bien en Chrome. Sin embargo, al depurar usando el Inspector web de Safari, no puedo colocar ningún punto de interrupción en los scripts porque Web Inspector solo muestra los scripts que se cargan directamente desde el HTML (a través de etiquetas de script), y no los scripts cargados por XHR (en mi caso, por SystemJS) . Esto significa que no puedo depurar mis propios scripts, lo que por supuesto es inaceptable.
Traté de solucionar esto usando SystemJS como antes, pero también colocando las etiquetas de script en el html, así:
<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>
Sin embargo, esto no funciona, ya que SystemJS no parece feliz con esto:
Llamada de System.register no válida. Las llamadas anónimas a System.register solo pueden realizarse mediante módulos cargados por SystemJS.import y no mediante etiquetas de script.
¿Cómo utilizo SystemJS y al mismo tiempo tengo la capacidad de depurar en Safari? Estoy buscando una solución un poco más sofisticada que 'poner una declaración de depuración en cada script' ...
debugger
palabra clave JS