If I run this:
ng g component components/blogs
I get
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
I understand the rest, but what is the /blogs/shared/index.ts
for? Why does a component have a shared folder if that component folder is just for the component?
The idea of the
index.ts
file in the shared dir is something called a barrel.The goal of the barrel it to consolidate imports. It will export the items contained within shared to make the imports in
blogs.component.ts
cleaner...app/components/blogs/shared/blogs.service.ts
app/components/blogs/shared/blog.model.ts
app/components/blogs/shared/index.ts
app/components/blogs/blogs.component.ts
And if you can imagine this becomes much more consolidated as you add more components/services/directives/models.
REFERENCE You can read about barrels in the official style guide (Thanks to Günter Zöchbauer)