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