Angular 6 Libraryを書いているので、TypeScriptにステップインする方法がわかりません。
ng new mylibapp
を使用してアプリを生成しました
次に、ng g library @abc/cool-lib -p abc
を使用してライブラリを追加しました
実行するとき:ng build @abc/cool-lib
mylibapp/dist/abc/cool-lib
フォルダーにコードを生成します
このコードをデバッグし、mylibapp/projects/abc/cool-lib/src/lib
にあるtsファイルにブレークポイントを設定するにはどうすればよいですか
ライブラリのAngular CLIドキュメント を見ると、次のことが言及されています:
代わりに、いくつかの同様のセットアップでは、tsconfig内でソースコードへのパスを直接追加します。これにより、アプリの変更がより速く表示されます。
したがって、そこから、実際にはtsconfig.jsonを更新して、ビルドされたライブラリの代わりにローカルソースコードを参照できます。
ビルドされたプロジェクトの使用:
"paths": {
"abc": [
"dist/abc"
]
実際のソースを使用するように変更します。
"paths": {
"abc": [
"projects/abc/src/public_api"
]
ドキュメントで言及されているように欠点があります:
しかし、それを行うのは危険です。これを行うと、アプリのビルドシステムもライブラリをビルドします。ただし、ライブラリはアプリとは異なるビルドシステムを使用してビルドされます。
しかし、私の場合、Chrome=で対話的にデバッグできるようにするだけでなく、再構築せずにすぐに変更を確認できます。このワークフロー以外のビルド済みプロジェクトで完全にテストしています。
セットアップは(Angular 7、おそらく6.2を既に使用)を使用して)非常に簡単です:
ng build [mylib] --watch
ng serve --vendor-source-map
ライブラリソースが利用可能になりました(Chrome/Firefox/...開発ツール)。
Angular 7.2の更新:
ng serve :の--vendor-source-map
は--sourceMap=true|false
に置き換えられました:
ng serve --source-map=true
さらなる更新:--source-map=true
残念ながら、期待した効果が得られませんでした。 関連する質問 があります。
Angular CLI v。6.1 以降、デバッグ時にライブラリのTypeScriptソースにステップインできるスイッチ--vendor-source-map
を使用できます。ng build @abc/cool-lib --vendor-source-map
を試して、それが役立つかどうかを確認してくださいまた、ng serve
でスイッチを使用することもできます。私の場合、ライブラリをホストしているアプリケーションでng serveを実行すると、ライブラリのソースマップが含まれます。これにより、tsconfig.jsonを編集する必要もなくなります。
@ angular/cli v7では、angular.json
ファイルに次の設定を追加して、ng serve
を使用して提供するときにライブラリのソースマップを有効にできます。
{
"projects": {
"your-app": {
"architect": {
"serve": {
"options": {
"vendorSourceMap": true