2017-02-03 11 views
1

У меня есть угловой 2 приложения.Как загрузить rxjs как один файл в Angular 2?

systemjs.config.js:

System.config({ 
     paths: { 
      'npm:': "libs/" 
     }, 
     map: { 
      'rxjs': "npm:rxjs" 
     } 
    }); 

компонентов:

import { Component, OnInit } from '@angular/core'; 
import { Observable } from 'rxjs/Observable'; 
import { Subject } from 'rxjs/Subject'; 
import 'rxjs/add/operator/catch'; 
import 'rxjs/add/operator/map'; 

@Component({ 
    selector: 'test', 
    templateUrl: './app/test.component.html' 
}) 
export class TestComponent implements OnInit { 
    constructor(...) { } 

    ngOnInit() { ... } 
} 

И глотком копия "ЛИЭС" папку все файлы из JS "node_modules/rxjs".

я вижу в консоли браузера для около 100 запросов от rxjs(merge.js, fromEvent.js, toPromise.js, ...)

Если изменить systemjs.config.js на:

'rxjs': "npm:rxjs/bundles/Rx.min.js" 

Я вижу ошибки, как это:

localhost/libs/rxjs/bundles/Rx.min.js/operator/toPromise.js Failed to load resource: the server responded with a status of 404 (Not Found) 

ли это поможет мне улучшить Performa nce, если я буду использовать только node_modules/rxjs/bundles/Rx.min.js?

И что я должен сделать, чтобы использовать этот единственный файл?

+0

Может быть, это может помочь вам http://stackoverflow.com/questions/40780363/systemjs-loads-many-files-for-rxjs/40788204#40788204 – martin

+0

Также этот https://github.com/systemjs/systemjs/issues/1039, но это зависит от того, какую версию SystemJS вы используете. – martin

+0

У меня есть ошибка «Невозможно прочитать свойство« вызов »неопределенного (router.umd.min.js: 8)». И что, если я хочу использовать локальный файл js Rx.min.js вместо cdn? –

ответ

0

Эта конфигурация SystemJS должна работать при использовании RxJS в вашем проекте.

System.config({ 
    transpiler: 'typescript', 
    typescriptOptions: { 
    emitDecoratorMetadata: true 
    }, 
    packages: { 
    '.': { 
     defaultExtension: 'ts' 
    }, 
    'vendor': { 
     defaultExtension: 'js' 
    } 
    } 
}); 

System.config({ 
    map: { 
    'main': 'main.js', 

    /* ... */ 

    // Rxjs mapping 
    'rxjs': 'https://unpkg.com/rxjs', 
    }, 
    packages: { 
    // Thirdparty barrels. 
    'rxjs': { 
     main: 'index' 
    }, 
    } 
}); 
+0

А что, если я хочу использовать локальный загруженный пакет «rxjs», а не cdn? –