Пакет vendor.js в блоке предохранителей не работает

Я настраиваю свое угловое приложение с помощью блока предохранителей вместо веб-пакета и хочу иметь 3 отдельных пакета (polyfills.js, vendor.js и app.js).

В веб-пакете я использую это:

'polyfills': './src/polyfills.ts',
'vendor': './src/vendor.ts',
'app': './src/main.ts'

полифиллы.тс

import 'core-js/es6';
import 'core-js/es7/reflect';
require('zone.js/dist/zone');

if (process.env.ENV === 'production') {
  // Production
} else {
  // Development and test
  Error['stackTraceLimit'] = Infinity;
  require('zone.js/dist/long-stack-trace-zone');
}

и vendor.ts

import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/compiler';
import '@angular/http';
import '@angular/router';
import '@angular/forms';

import 'rxjs';
import './rxjs-extensions';

с rxjs-extensions.ts

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';

Теперь я изменил это на блок предохранителей

fuse.bundle('polyfills').instructions('> polyfills.ts');
fuse.bundle('vendor').instructions('~ main.ts vendor.ts');
fuse.bundle('app').instructions('!> [main.ts]').watch().hmr();

В этом случае с полифиллами все в порядке, а у продавца есть все сторонние зависимости от приложения (~main.ts) плюс все в vendor.ts, а у приложения есть только то, что есть в проекте.

Кажется, компилируется нормально, но затем, когда я выполняю код, я получаю ERROR TypeError: this.http.get(...).map is not a function в моем service.get(...).map()

Мне кажется, что vendor.ts не импортирует расширения rxjs.

Кто-нибудь знает, как это исправить?

Если я использую только

fuse.bundle('polyfills').instructions('> polyfills.ts');
fuse.bundle('vendor').instructions('> vendor.ts');
fuse.bundle('app').instructions('> main.ts').watch().hmr();

это работает, но тогда мой пакет app.js включает слишком много вещей и увеличивается с 303 КБ до 2,4 МБ.


person David    schedule 20.06.2017    source источник


Ответы (1)


Убедитесь, что вы правильно поняли заказ. Попробуйте WebIndexPlugin, он помогает автоматически внедрять скрипты. Если вы опубликуете свой файл конфигурации, он может сказать вам, что не так

person user3677173    schedule 26.08.2017