Debug in Web Inspector di Safari, quando si utilizza un caricatore di moduli come SystemJS


121

Sto creando un Ionicapplicazione utilizzando es6 modules, TypeScripte SystemJScome 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" ...


4
Questo può sembrare un consiglio strano, e poiché la domanda è aperta dall'11 gennaio, ma ti consiglio di immergerti magari nel webpack. Ho letto in SystemJS, ma non ho la sensazione che soddisferà le tue esigenze.
DevNebulae

Sembra che se non riesci a caricare lo script in html come stavi facendo, sei sfortunato. Chrome sembra essere l'unico browser che lo supporta come hai visto.
The Muffin Man


3
usa la debuggerparola chiave JS
Kamil Kiełczewski

1
@ KamilKiełczewski La domanda afferma esplicitamente "Sto cercando una soluzione un po 'più sofisticata di" mettere un'istruzione debugger in ogni script "..."
fikkatra

Risposte:


1

Bene, forse puoi usare alcuni IDE come WebStorm con un potente debugger per Web e Node.

Esempi:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Puoi vedere di più sul debugger di WebStorm qui .

Alcune alternative per WebStorm:

  1. Atom (gratuito)
  2. Intellij IDEA (community: gratuita)
  3. Visual Studio Code (gratuito)
  4. ...

PS: sviluppo app Ionic e React con WebStorm: D


1
Ho provato ad entrare in Webstorm, ma ho così tante utili funzionalità fornite dal sistema di estensione in VS Code che Webstorm non ha, è difficile fare il salto.
Stephen M Irving,


-4

scrivi nella parola chiave del file js debuggere apri inspect elementin explorer

quando si aggiorna la pagina e la modalità di debug ...

divertirsi ;-)


3
La domanda afferma esplicitamente "Sto cercando una soluzione un po 'più sofisticata di' mettere una dichiarazione del debugger in ogni script '..."
fikkatra
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.