我正在尝试使用Angular2-Toaster,但我无法通过此错误
(SystemJS) XHR error (404 Not Found) loading http://localhost:4311/node_modules/angular2-toaster/angular2-toaster(…)
我查看了浏览器调试中的来源,并且没有将angular2-toaster文件夹加载到浏览器中。
我使用npm安装它,它确实出现在文件系统的node_modules中,以及package.json中。
打字稿编辑和视觉工作室很开心。它只是在尝试运行应用程序时爆炸这是我所拥有的
main.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
import { BrowserModule } from '@angular/platform-browser';
import { ToasterModule } from 'angular2-toaster/angular2-toaster';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
app.module
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component'
import { FormsModule } from '@angular/forms';
import { ToasterModule,} from 'angular2-toaster/angular2-toaster';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, HttpModule, FormsModule, ToasterModule],
bootstrap: [AppComponent]
})
export class AppModule { }
这就是我所做的一切。甚至没有尝试使用它,只是试图超越进口。 有什么想法接下来要检查什么?什么控制从node_modules加载的包?
答案 0 :(得分:2)
在使用Angular2时,人们似乎误解了编译时和运行时之间的区别。编译工作正常,因为它只处理针对TypeScript代码的编译。 TypeScript不担心任何JS文件,甚至不存在JS文件。所有它关心的是编译。我们的工作是确保JS文件在运行时可用。
话虽如此,在使用SystemJS时,您需要确保在运行时加载库JS文件。您可以在systemjs.config.js
文件中执行此操作。对于您的特定库,您应该添加
map: {
'angular2-toaster': 'npm:angular2-toaster'
},
packages: {
'angular2-toaster': {
defaultExtension: 'js'
}
}