2016-01-03 4 views
33

Angular2とTypescript + 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に、あなたは自分のライブラリーに「スローE」の行にブレークポイントを追加したい場合があります、あなたがより多くを得るでしょう詳細なスタックトレース。スタックトレース内の "..."をクリックすると、エラーの原因となったファイルにアクセスできます。

これは実際のバグです。パフォーマンスのために、「タイムライン」タブで、左上の「レコード」ボタンをクリックすることができます。録音が完了したら(「終了」をクリック)、CPU使用率が表示されます。タイムラインのイベントを拡大して、コードのどの部分がリソースを使いすぎているかを確認することができます。

「メモリ」チェックボックスをオンにすると、メモリを追跡することもできます。

iframeをデバッグする必要がある場合は、コンソールに「トップフレーム」と表示されているiframeに設定できる選択ボックスがあります。

私が何か重要なことを忘れてしまったら、ただ質問してください:)。

+0

それは素晴らしいです! Angular2内で例外をスローする任意の行にブレークポイントを追加する簡単な方法はありますか?私は、「例外で休止する」という小さなボタンを見つけました。それはあなたが話していたものですか? –

+0

私はこのボタンについて知りませんでした。コンソールでファイル名をクリックすると、例外を投げた行にリダイレクトされます。明らかに、dev2モードでangle2 unminifiedファイルを使用すると、デバッグがずっと簡単になります。 –

+0

私の問題は、エラーメッセージが表示されますが、.tsファイルではなく.jsファイルを指していることです。 .tsと.jsファイルの行番号が一致しないため、デバッグが非常に困難になります。 –

7

これはAngular2のためのものではないと思いますが、あなたがJavaのバックグラウンドから来ているとすれば、これは一般的に「どのようにJavaScript Webアプリケーションを正常にデバッグするか」のように思えます。

これに関連して、Chrome Devtools pageをご覧になることを強くお勧めします(非常にきちんとしたdevtoolsビルドインを備えたChromeを使用する場合)。
このページには多くの便利なチュートリアルがあります。具体的にあなたのケースDOMの変更に壊し、条件付きデバッグのようないくつかのクールなティップスを持ってDebugging JavaScriptにおそらく記事、でも上破るキャッチ/キャッチされない例外など

に私はまた、多くの場合のようにいいです無料Code School course on Discover Devtoolsを行うために人々を提案しますよく

TypeScriptの場合は、がソースマップを有効にしていることも確認してください。おそらくあなたが知っているように、TypeScriptはブラウザによって直接実行されるのではなく、むしろJavaScriptに "コンパイルされている"(または "transpiled"と呼ばれる)ようになっています。つまり、翻訳されたJSをデバッグするのではなく、あなたが書いたTypeScriptコードをデバッグしたいと思うでしょう。sourcemapsを有効にするには、あなたのtsconfig.jsonに適切なフラグを設定:あなたはJavaの世界から来ている場合は

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

、すでにジェットブレーンズからのIntelliJ IDEAを使用している可能性が高いと言えます。その場合は、Javaアプリケーションで使用するのと同じインターフェイスを使用して、IDEで直接JavaScript(およびTypeScript)アプリケーションをデバッグすることができます。

JetBrainsは、参考になると思われる件に関してsome documentationです。

他の回答で述べたように、Chrome Inspectorのデバッガを使用することもできます。個人的には、代わりにIntelliJを使用することを大いに好んでいます。

ワークフローの流れの例を探している場合は、Github project that shows the use of Webpack with Angular2をご覧ください。

+0

私はIntelliJ for Javaが大好きで、このためにもやっていきたいと思っていますが、今はすべて手作業です。私は物事を自動化する任意のIDEを使用する前に、どのようにこのことが合うかを学びたいので、IDEが何をするのか理解することができます。 –

+2

Google Chromeデバッガは、IntelliJとまったく同じ機能を果たします。マニュアルは何もなく、純粋ではありません。 Firefoxとは違ったデバッガと同じように、別のデバッガです。あなたが持っているなら、それを使用してください。本当に。 –

+0

そうですね、私はワークフロー全体を意味します。プロジェクトの作成時にどのように生成され、どのように組み合わされ、どのようにビルドされ、実行時に何が起こるのでしょうか?デバッグはそのすべての一部です。私はまだ他のものも学んでいます。私はそれらのファイルをすべて手作業で書いて、理解するまでそれらのコマンドを実行したいと思っています。 IDEは私のためにそれを行うことができます。 –

19

ウェブデベロッパーコンソールを開いて、[ソース]セクションに移動します。 「cntrl + p」を押します。検索ボックスが開き、 ".ts"と入力してファイルを検索するか、 "myfile.ts"のようなファイルを直接検索します。それを開き、ブレークポイントをコードに直接入れることができます。私たちがjsファイルとVoilaにブレークポイントを置くのと同じ方法で、Typescriptをデバッグすることができます。

関連する問題