Angular CLI は、それ自体がかなり大きなプロジェクトであり、レポに次のように記載されています。
プロジェクトはまだ進行中の作業です
Angular CLI 自体は、プロジェクトのブートストラップ、リソースの処理および構築のための多機能ツールであるEmber CLIに基づいています。詳細については、ember cli docs を参照するか、AngularJS YouTube チャンネルのいくつかのセッションをご覧ください。
しかし、あなたの質問のいくつかに答えるために:
- index.html で、角度の驚くべき補間構文を見つけました。アプリでのこれらの役割は何ですか?
Angular 補間ではなく、ng cli broccoli プラグインによって処理されるハンドルバーの条件付きブロックが表示されます。この場合、アプリを本番モードで実行していない場合にのみ、ライブ リロード スクリプトが追加されることが保証されます。アプリのエントリ ファイルはindex.html
コンパイラによって処理され、ember/angular cli によって登録されたプラグインが呼び出されます。そのうちの 1 つは Handlebars コンパイラを呼び出します。これは、テンプレートにロジックを追加する場合に便利です。たとえば、次のようにステージをフッターに表示できます。
<footer>
{{#if environment.production}}
<span>We are in production</span>
{{/if}}
{{#unless environment.production}}
<span>We are in development</span>
{{/unless}}
</footer>
- ここで index.ts の役割は何ですか?
これは、フォルダ内に index.html があるのと同じように機能します。これは、そのフォルダのデフォルトのエントリ ポイントです。私たちの場合、モジュールの解決に使用します。コンポーネントを別の場所で使用したい場合は、それらをエクスポートする必要があります。インポート ファイルでは、それらを明示的に要求/インポートする必要があります。ここで、フォルダーに多くのコンポーネントがあり、それらすべてをインポートする場合、インポート ステートメントはすぐに手に負えなくなります。したがって、フォルダーのエクスポートされたすべてのコンポーネントを 内で言及するだけindex.ts
で、インポートするコンポーネントがimport {Comp1, Comp2, Comp3} from './app'
代わりに実行できるようになります
import { Comp1 } from './app/comp1';
import { Comp2 } from './app/comp2';
import { Comp3 } from './app/comp3';
import {*} from './app'
とimport {*} from './app/index'
は同等であることに注意してください。
- ...compilation(*.ts to *.js) 、CLI では、これらのアクションが実行される方法と場所は?
これは、angular cli で採用されているブロッコリービルダーによって実行されます。基本的に、特定のリソースを処理するさまざまなプラグインを連鎖させます。たとえば、typescript プラグインは名前が付けられたすべてのファイルを処理し、そのファイル*.ts
を*.js
別のプラグインで処理して縮小することができます。を使用している場合ng serve
、リソースが変更されるたびにコンパイルが行われます。
- angular-cli.json ファイルの役割は何ですか?
angular cli自体の構成を保存しました-アプリの名前、ソースの場所、遅延モジュールの名前など。ほとんどの場合、手動で変更する必要はありません。
現在、angular cli のドキュメントは、多くのトピック、特にツール自体のアーキテクチャに関してかなり不安定です。多数の依存関係があり、angular2 がまだ進化しているため、一部の統合は期待どおりに機能しません (新しいルーターなど)。ジェネレーターが本当に必要ない場合は、github で利用可能な多くのスターター パック (angular webpack、angular gulp など) があるため、他のオプションを探索できます。
頑張ってハッキングをお楽しみください。