我正在尝试遵循Angular 2风格指南04-10创建和导入桶:https://angular.io/docs/ts/latest/guide/style-guide.html
当我运行我的应用程序时,angular现在尝试加载一个不存在的文件:“my-component-name-here.js”。
为了说明这个问题,我修改了Angular 2示例应用程序以使用一个桶文件,它现在也引发了404错误。
我将英雄组件文件放入他们自己的名为heroes的文件夹中。我创建了一个名为heroes / index.ts的新文件:
export * from './heroes/heroes.component';
我将app.component.ts中的import语句更改为:
import { HeroesComponent } from './heroes';
当应用程序尝试加载时,会出现以下错误,如开发人员控制台中所示:
Error: Error: XHR error (404 Not Found) loading app/heroes.ts(…)
在这里找到了plunkr: http://plnkr.co/edit/YXY0PwuFot1g1s6qTqDt?p=preview
我怀疑这与SystemJS有关,但我不太了解它来修复它。有人可以帮忙吗?提前谢谢!
答案 0 :(得分:13)
你必须做一些改变才能使桶工作,
index.ts
export * from './heroes.component';
<强> systemjs.config.js 强>
在map
添加条目,如下所示
'heroes': 'app/heroes',
然后在packages
中创建如下条目,
'heroes': { main: 'index.ts', defaultExtension: 'ts' },
这将解决barrel
问题,但不会完全解决您的所有问题,因为您在英雄组件中也引用了hero-detail
,因此您必须处理这些问题。
希望这会有所帮助!!
答案 1 :(得分:0)
我可以在你的plunkr中看到,HeroesComponent
类位于app/heroes/heroes.component.ts
文件中。所以我会用以下代码:
import { HeroesComponent } from './heroes.component';