我有以下systemjs.config.js(基于我在互联网上找到的一些例子):
(function (global) { System.config({ paths: { // paths serve as alias 'js:': 'js/',},// map tells the System loader where to look for things map: { // our app is within the app folder app: 'app',// angular bundles '@angular/core': 'js:angular2/core.umd.js','@angular/common': 'js:angular2/common.umd.js','@angular/compiler': 'js:angular2/compiler.umd.js','@angular/platform-browser': 'js:angular2/platform-browser.umd.js','@angular/platform-browser-dynamic': 'js:angular2/platform-browser-dynamic.umd.js','@angular/http': 'js:angular2/http.umd.js','@angular/router': 'js:angular2/router.umd.js','@angular/forms': 'js:angular2/forms.umd.js','@angular/upgrade': 'js:angular2/upgrade.umd.js',// other libraries 'rxjs': 'js:rxjs','angular-in-memory-web-api': 'js:in-memory-web-api.umd.js' },// packages tells the System loader how to load when no filename and/or no extension packages: { app: { main: './main.js',defaultExtension: 'js' },rxjs: { defaultExtension: 'js' } } }); })(this);
当我启动我的Angular2应用程序时,会加载许多单独的rxjs文件,这需要很长时间.我在js / rxjs / bundles / Rx.js中有一个捆绑版本的RxJ,所以我试着像这样修改systemjs.config.js:
(function (global) { System.config({ paths: { // paths serve as alias 'js:': 'js/',// other libraries 'rxjs': 'js:rxjs/bundles/Rx.js',defaultExtension: 'js' } } }); })(this);
当我尝试立即启动我的应用程序时,我在浏览器中收到以下错误:
Error: (SystemJS) Syntax error SyntaxError: Syntax error at Anonymous function (eval code:2:1) Evaluating http://localhost:37191/js/rxjs/bundles/Rx.js/Subject Evaluating http://localhost:37191/app/main.js Error loading http://localhost:37191/app/main.js
我的main.ts看起来像这样:
import { platformbrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app.module'; const platform = platformbrowserDynamic(); platform.bootstrapModule(AppModule);
我的app.module.ts看起来像这样:
import 'rxjs'; import { NgModule } from '@angular/core'; import { browserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { DeviceGroupsViewComponent } from './device-groups-view.component'; import { DeviceGroupService } from './devicegroup.service'; import { SourceTypeService } from './sourcetype.service'; @NgModule({ imports: [ browserModule,FormsModule,HttpModule,AppRoutingModule ],declarations: [ AppComponent,DeviceGroupsViewComponent ],providers: [ DeviceGroupService,SourceTypeService ],bootstrap: [AppComponent] }) export class AppModule { }
我需要更改什么才能使我的应用程序与捆绑的Rx.js一起使用?
如果您的设置基于angular2快速入门,那么您就可以了.
但是,你绝对不能
import {something} from 'rxjs/Rx';
这是错误的,将导入整个RxJS库(当您只想使用Observable时).
import {Observable} from 'rxjs/Rx';
这是对的
import {Observable} from 'rxjs/Observable';
并将减少进口数量.确保您的应用没有引用’rxjs / Rx’
原文地址:https://www.jb51.cc/angularjs/143623.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。