Налагодження у веб-інспекторі Safari при використанні завантажувача модулів типу SystemJS


121

Я створюю Ionicдодаток , використовуючи es6 modules, TypeScriptі в SystemJSякості модуля завантажувача. Це моя установка:

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>

приклад сценарію (TypeScript):

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

export class ConfigLoader {
    ...
}

У Chrome все працює чудово. Однак при налагодженні за допомогою веб-інспектора Safari я не можу розміщувати жодних точок перериву у скриптах, оскільки Web Inspector показує лише скрипти, завантажені безпосередньо з HTML (через теги скриптів), а не скрипти, завантажені XHR (у моєму випадку SystemJS) . Це означає, що я не можу налагоджувати власні сценарії, що, звичайно, неприпустимо.

Я намагався обійти це, використовуючи SystemJS, як і раніше, але також розміщуючи теги скриптів у html, наприклад:

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

Однак це не працює, оскільки SystemJS не здається цим задоволеним:

Недійсний виклик System.register. Анонімні виклики System.register можуть здійснюватися лише модулями, завантаженими SystemJS.import, а не через теги скриптів.

Як я можу використовувати SystemJS і одночасно мати можливість налагодження в Safari? Я шукаю рішення дещо складніше, ніж "ставити заяву про налагодження у кожен сценарій" ...


4
Це може здатися дивною порадою, і оскільки питання відкрите з 11 січня, але я б радив вам, можливо, зануритися в веб-пакет. Я читав у SystemJS, але не відчуваю, що він покриє ваші потреби.
DevNebulae

Схоже, якщо ви не можете завантажити скрипт, завантажений у HTML, так, як це робили, вам не пощастило. Здається, Chrome є єдиним браузером, який підтримує це, як ви вже бачили.
The Muffin Man


3
використовувати debuggerключове слово JS
Kamil Kiełczewski

1
@ KamilKiełczewski У запитанні прямо сказано: "Я шукаю рішення трохи складніше, ніж" вкласти заяву про налагодження у кожен сценарій "..."
fikkatra

Відповіді:


1

Ну, можливо, ви можете використовувати деякі IDE на зразок WebStorm із потужним налагоджувачем для Web та Node.

Приклади:

введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення

Більше про налагоджувач WebStorm ви можете подивитися тут .

Деякі варіанти для WebStorm:

  1. Atom (безкоштовно)
  2. Intellij IDEA (співтовариство: безкоштовно)
  3. Код візуальної студії (безкоштовно)
  4. ...

PS: Я розробляю програми Ionic та React за допомогою WebStorm: D


1
Я намагався потрапити в Веб-штурм, але в мене так багато корисних функцій, що надаються системою розширення в коді VS, що Webstorm не має, важко зробити стрибок.
Стівен М Ірвінг


-4

запишіть у ключове слово js-файл debuggerта відкрийте inspect elementв провідник

при оновленні сторінки та режимі налагодження ...

насолоджуйся цим ;-)


3
У запитанні прямо сказано: "Я шукаю рішення дещо складніше, ніж" помістити
заявку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.