anchor.diff:    Why doesn't the Angular compiler generate code for every component in `@NgModule.declarations`?
     Then we wouldn't need entry components.
     
  -  *入口组件*也被声明过。
  +  *入口组件*也是被声明的。
     为什么Angular编译器不为`@NgModule.declarations`中的每个组件都生成一份代码呢？那样就不需要入口组件了。
     
     The reason is _tree shaking_. For production apps we want to load the smallest, fastest code possible.
  
positive.code:         The router creates them and drops them into the DOM near a `<router-outlet>`.
          
          路由组件同样是*入口组件*，因为他们也不会被从模板中引用。
          路由器创建会它们，并把它们扔到DOM中的`<router-outlet>`附近。
  
          While the bootstrapped and routed components are _entry components_, 
          we usally don't have to add them to a module's `entryComponents` list.
  
negative.code:   most of them exported. 
    
    为那些可能会在应用中到处使用的组件、指令和管道创建`SharedModule`。
    这种模块应该只包含`declarations`，并且应该导出几乎所有`declarations`里面的声明。
    
    It may re-export other [widget modules](#widget-feature-module) such as `CommonModule`,
    `FormsModule` and modules with the UI controls that you use most widely.
  