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

Angular 2 app failing with XHR error (404 Not Found)

我正在尝试使用 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.

Typescript 编译并且 visual studio 很高兴。它只是在尝试 运行 应用程序时爆炸

这是我的

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

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

也就是说,在使用SystemJS 时,您需要确保在运行时加载库JS 文件。您在 systemjs.config.js 文件中执行此操作。对于您的特定图书馆,您应该添加

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