11

これを実行すると:

ng g component components/blogs

私は得る

app
+--components
| +--blogs
| |  +--shared
| |  |  +--index.ts              // what's this for?
| |  +--blogs.component.css
| |  +--blogs.component.html
| |  +--blogs.component.ts
| |  +--blogs.component.spec.ts  // unit tests!
| |  +--index.ts

残りは理解しましたが、何の/blogs/shared/index.tsためですか?コンポーネントフォルダがコンポーネント専用であるのに、コンポーネントに共有フォルダがあるのはなぜですか?

4

1 に答える 1

19

共有ディレクトリ内のファイルのアイデアはindex.ts、バレルと呼ばれるものです。

バレルの目標は、輸入を統合することです。共有に含まれるアイテムをエクスポートして、インポートをblogs.component.tsよりクリーンにします...

アプリ/コンポーネント/ブログ/共有/blogs.service.ts

export class BlogsService { ... }

アプリ/コンポーネント/ブログ/共有/blog.model.ts

export class Blog { ... }

アプリ/コンポーネント/ブログ/共有/index.ts

export * from './blogs.service';
export * from './blog.model';

app/components/blogs/blogs.component.ts

// without barrel
import { BlogsSerivce } from './shared/blogs.service';
import { Blog } from './shared/blog.model';

// with barrel
import { BlogService, Blog } from './shared';

そして、コンポーネント/サービス/ディレクティブ/モデルを追加すると、これがさらに統合されることが想像できます。

REFERENCE公式スタイルガイドでバレルについて読むことができます(Thanks to Günter Zöchbauer)

于 2016-06-07T20:19:19.877 に答える