为什么angular-cli会创建component/shared/index.ts?

abb*_*33f 11 shared angular-cli angular

如果我运行这个:

ng g component components/blogs
Run Code Online (Sandbox Code Playgroud)

我明白了

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
Run Code Online (Sandbox Code Playgroud)

我了解其余的,但是/blogs/shared/index.ts为了什么?如果组件文件夹仅用于组件,为什么组件具有共享文件夹?

Bro*_*cco 18

index.ts共享目录中的文件的想法是桶.

它的目标是巩固进口.它将导出共享中包含的项目,以使导入blogs.component.ts更清洁......

应用/组件/博客/共享/ blogs.service.ts

export class BlogsService { ... }
Run Code Online (Sandbox Code Playgroud)

应用/组件/博客/共享/ blog.model.ts

export class Blog { ... }
Run Code Online (Sandbox Code Playgroud)

应用/组件/博客/共享/ index.ts

export * from './blogs.service';
export * from './blog.model';
Run Code Online (Sandbox Code Playgroud)

应用程序/组件/博客/ blogs.component.ts

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

// with barrel
import { BlogService, Blog } from './shared';
Run Code Online (Sandbox Code Playgroud)

如果您可以想象,当您添加更多组件/服务/指令/模型时,这会变得更加整合.

参考您可以在官方风格指南中阅读有关桶的信息(感谢GünterZöchbauer)