2016-01-03 2 views
33

Я только что начал проект по изучению Angular2 и Typcript + Javascript. Я исхожу из фона Java, и мой подход к отладке проектов обычно представляет собой комбинацию трассировок стека, ошибок компиляции и - на больших проектах - множество тестовых примеров. Тем не менее, большая часть этого, похоже, напрямую не переводится в мир web-dev; особенно отлаживая мой код, взаимодействующий с библиотеками Angular2.Угловые ошибки 2 и машинописный текст - как отлаживать?

Может ли кто-нибудь предложить какие-либо подходы, которые я могу предпринять для отладки кода, работающего с Angular2? В частности, как я могу увидеть, какие части моего HTML/TS вызывают проблемы? Я проверил консоль, из которой я вижу, что я сломал Angular2, но из этого не кажется более информативным.

Просто уточнить; Мне не нужна помощь для этого конкретного экземпляра. Я хотел бы узнать, как диагностировать + исправить эти проблемы самостоятельно.

+2

Я думаю, вы должны посмотреть это видео на [AngularConnect 2015] (https://www.youtube.com/watch?v=cAC4d3KIQcM), о [Batarangle] (https://github.com/rangle/batarangle) –

ответ

22

Предполагая, что вы используете Chrome, вы можете установить точки останова на вкладке «Источники» в консоли. Эти контрольные точки могут быть установлены в файлах ts. Если вам нужна информация из js-файла, вы можете отключить исходные коды Javascript в настройках консоли: это позволит вам установить точки останова в js-файлах.

В точке останова вы можете делать обычные (часы, шпионы, трассировка стека и т. Д.). Вы также можете написать JS в консоли с доступом к локальным переменным непосредственно, например:

function b(){ 
    var c = 1; 
    // if you put a breakpoint here and type c in the console, it will write "1" 
} 

В частности, в угловом 2, вы можете добавить точки останова в «броске е» линии в их библиотеке, вы получите больше подробные следы стека. Если вы нажмете на «...» в своих трассировках стека, вы получите доступ к вашему файлу, который вызвал ошибку.

Это для реальных ошибок. Теперь, для повышения производительности, на вкладке «Timeline» вы можете нажать кнопку «Запись» в левом верхнем углу. Как только вы закончите запись (нажмите «закончить»), вы увидите использование ЦП. Вы можете увеличить события на временной шкале, чтобы увидеть, какая часть кода использует слишком много ресурсов.

Вы также можете отслеживать память, установив флажок «Память».

Если вам нужно отлаживать iframe, в консоли есть поле выбора, в котором указано «верхний кадр», который вы можете установить в зависимости от того, какой вы хотите.

Если я забыл что-то важное, просто спросите :).

+0

Это великолепно! Есть ли простой способ добавить точки останова в любые строки, которые генерируют исключение в Angular2? Я нашел маленькую кнопку, которая говорит «пауза об исключениях», это то, о чем вы говорили? –

+0

Я не знал об этой кнопке, если она работает, это прекрасно. Вы можете щелкнуть по имени файла в консоли, чтобы его перенаправляли по строке, в которой было исключение. Очевидно, будет намного легче отлаживать, если вы используете файл angular2 unminified в режиме dev. –

+0

Моя проблема в том, что я вижу сообщения об ошибках, но они указывают на .js-файлы вместо файлов .ts. Это очень сильно отлаживает работу, поскольку номера строк не соответствуют файлам .ts и .js. –

7

Я думаю, что это не просто для Angular2, но если вы пришли из фона Java, я предполагаю, что это больше похоже на «как я могу успешно отлаживать веб-приложения JavaScript» в целом.

В связи с этим я настоятельно рекомендую вам взглянуть на Chrome Devtools page (учитывая, что вы используете Chrome с очень аккуратным встроенным devtools).
На этой странице есть много полезных уроков. В частности, в вашем случае, вероятно, статья на Debugging JavaScript, который имеет некоторые интересные Tipps как условная отладка, разбивая на модификации DOM, даже разорвать на пойманные/неперехваченные исключения и т.д.

Я также часто предлагаю человек делать свободный Code School course on Discover Devtools, которая хороша, как Что ж.

В случае с TypeScript также убедитесь, что вы включите исходные коды. Как вы, вероятно, знаете, что TypeScript напрямую не выполняется браузером, а скорее «компилируется» (или, как его называют «transpiled») в JavaScript. Тем не менее, вы, вероятно, не хотите отлаживать переданный JS, а скорее код TypeScript, который вы написали.Чтобы включить sourcemaps, установите соответствующий флаг в вашем tsconfig.json:

{ 
    "version": "1.6.2", 
    "compilerOptions": { 
    ... 
    "sourceMap": true 
    }, 
    "exclude": [ 
    ... 
    ] 
} 
3

Если вы едете из мира Java, есть хороший шанс, что вы уже используете IntelliJ IDEA от JetBrains. Если это так, то можно отлаживать приложения JavaScript (и TypeScript) непосредственно в среде IDE, используя тот же интерфейс, который вы используете для приложений Java.

JetBrains имеет some documentation по вопросу, который может помочь.

Как было сказано в других ответах, вы также можете использовать отладчик Chrome Inspector. Лично я предпочитаю использовать IntelliJ для этого.

Если вы просто ищете примеры того, как работает рабочий процесс, взгляните на это Github project that shows the use of Webpack with Angular2.

+0

Я люблю IntelliJ для Java и намерен работать в нем для этого тоже, но сейчас я делаю все вручную. Я хочу узнать, как все это сочетается перед использованием любой IDE, которая автоматизирует все, поэтому я могу понять, что делает IDE. –

+2

Отладчик Google Chrome выполняет то же самое, что и IntelliJ. В этом нет ничего ручного или более чистого. Это просто отличный отладчик, так же как у Firefox был другой отладчик. Если у вас есть это, используйте его. В самом деле. –

+0

Правильно, но я имею в виду весь рабочий процесс - что генерируется при создании проекта, как это сочетается, как оно строится и что происходит при нажатии кнопки? Отладка - всего лишь одна часть всего этого; Я все еще изучаю другие вещи. Я бы предпочел вручную записать все эти файлы и запустить эти команды, пока не пойму это; то IDE может сделать это для меня. –

19

Откройте консоль веб-разработчиков, перейдите в раздел «Источники». Нажмите «cntrl + p». Откроется окно поиска, где будет напечатано «.ts», и найдите файл или найдите его в файле «myfile.ts». Откройте его, и вы можете установить точки останова непосредственно в коде, так же, как мы поставили точки останова в файле js и Voila, вы можете отлаживать TypScript.

Смежные вопросы