3

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

应用程序模块

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

4

1 回答 1

2

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

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

map: {
  'angular2-toaster': 'npm:angular2-toaster'
},
packages: {
  'angular2-toaster': {
    defaultExtension: 'js'
  }
}
于 2016-11-02T23:18:45.157 回答