Depuração no Web Inspector do Safari, ao usar um carregador de módulo como SystemJS


121

Estou criando um Ionicaplicativo usando es6 modules, TypeScripte SystemJScomo um carregador de módulo. Esta é minha configuração:

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 exemplo (TypeScript):

import {IConfig} from "./app-config";

export class ConfigLoader {
    ...
}

Tudo funciona muito bem no Chrome. No entanto, ao depurar usando o Web Inspector do Safari, não posso colocar nenhum ponto de interrupção nos scripts porque o Web Inspector só mostra scripts que são carregados diretamente do HTML (por meio de tags de script), e não scripts carregados por XHR (no meu caso, por SystemJS) . Isso significa que não posso depurar meus próprios scripts, o que é obviamente inaceitável.

Tentei contornar isso usando SystemJS como antes, mas também colocando as tags de script no html, assim:

<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>

No entanto, isso não funciona, porque SystemJS não parece feliz com isso:

Chamada System.register inválida. As chamadas System.register anônimas só podem ser feitas por módulos carregados por SystemJS.import e não por meio de tags de script.

Como uso o SystemJS e, ao mesmo tempo, posso depurar no Safari? Estou procurando uma solução um pouco mais sofisticada do que 'colocar uma instrução do depurador em cada script' ...


4
Isso pode parecer um conselho estranho, e já que a questão está em aberto desde 11 de janeiro, mas eu o aconselharia a mergulhar no webpack. Tenho lido o SystemJS, mas não tenho a sensação de que ele atenderá às suas necessidades.
DevNebulae

Parece que se você não consegue carregar o script no html como estava fazendo, você está sem sorte. O Chrome parece ser o único navegador compatível com isso, como você viu.
The Muffin Man


3
usar debuggerpalavra
Kamil Kiełczewski

1
@ KamilKiełczewski A questão afirma explicitamente 'Estou procurando uma solução um pouco mais sofisticada do que' colocar uma instrução do depurador em cada script '...'
fikkatra

Respostas:


1

Bem, talvez você possa usar algum IDE como o WebStorm com um depurador forte para Web e Node.

Exemplos:

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

Você pode ver mais sobre o depurador WebStorm aqui .

Algumas alternativas para WebStorm:

  1. Atom (grátis)
  2. Intellij IDEA (comunidade: grátis)
  3. Código do Visual Studio (gratuito)
  4. ...

PS: Eu desenvolvo aplicativos Ionic e React com WebStorm: D


1
Tenho tentado entrar no Webstorm, mas tenho tantos recursos úteis fornecidos pelo sistema de extensão no VS Code que o Webstorm não tem, é difícil fazer o salto.
Stephen M Irving


-4

escrever na palavra debugger- chave do arquivo js e abrir inspect elementno explorer

ao atualizar a página e o modo de depuração ...

Aproveite ;-)


3
A pergunta afirma explicitamente "Estou procurando uma solução um pouco mais sofisticada do que 'colocar uma instrução do depurador em cada script' ..."
fikkatra
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.