Como importar um barril apenas pelo nome da pasta?

Angular 2 Barrels

No Angular 2, estou tentando fazer com que os barris funcionem conforme descrito nodocumentação.

O oficialGuia de estilo Angular 2 fala sobre o usobarris agregar e reduzirimport afirmações.

Estou descobrindo que, para alguns barris, tenho que especificar oindex Nome de arquivo JavaScript na importação quando não deveria.

Exemplo de barril

(modifique o arquivo app / app.component.ts na linha 12)

Depois de ter encontrado isso no meu projeto real (em execução no ASP.NET), criei umPlunker para demonstrar o problema em que modifiquei o Tour of Heroes para usar barris.

Noapp/app.component, a maneira básica de importar é assim:

import { HeroService } from './hero.service';
import { HeroesComponent } from './heroes.component';
import { HeroDetailComponent } from './hero-detail.component';

Mas, para usar um barril, a definição de importação ficaria assim:

import {
  HeroService,
  HeroesComponent,
  HeroDetailComponent
} from '../app';

ofrom '../app'; A linha indica um arquivo com o nome deindex.ts que contêm os componentes exportados / importados:

// app/index.ts
export * from './hero-detail.component';
export * from './hero.service';
export * from './heroes.component';

Mas isso não funciona para mim em todos os casos. A única maneira de fazer isso funcionar corretamente é incluir explicitamente oindex nome do arquivo:

import {
  HeroService,
  HeroesComponent,
  HeroDetailComponent
} from '../app/index'; // have to indicate 'index'

Como faço para que isso funcione onde oindex.js nome do arquivo está implícito?

questionAnswers(3)

yourAnswerToTheQuestion