Angular 2应用程序因XHR错误而失败(404未找到)

时间:2016-11-02 21:23:40

标签: angular angular2-toaster

我正在尝试使用Angular2-Toaster,但我无法通过此错误

(SystemJS) XHR error (404 Not Found) loading http://localhost:4311/node_modules/angular2-toaster/angular2-toaster(…)

我查看了浏览器调试中的来源,并且没有将angular2-toaster文件夹加载到浏览器中。

Source from browser debug

我使用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加载的包?

1 个答案:

答案 0 :(得分:2)

在使用Angular2时,人们似乎误解了编译时和运行时之间的区别。编译工作正常,因为它只处理针对TypeScript代码的编译。 TypeScript不担心任何JS文件,甚至不存在JS文件。所有它关心的是编译。我们的工作是确保JS文件在运行时可用。

话虽如此,在使用SystemJS时,您需要确保在运行时加载库JS文件。您可以在systemjs.config.js文件中执行此操作。对于您的特定库,您应该添加

map: {
  'angular2-toaster': 'npm:angular2-toaster'
},
packages: {
  'angular2-toaster': {
    defaultExtension: 'js'
  }
}