我正在使用 fusebox 而不是 webpack 配置我的角度应用程序,我想有 3 个单独的捆绑包(polyfills.js、vendor.js 和 app.js(。
在 webpack 中,我正在使用这个:
'polyfills': './src/polyfills.ts',
'vendor': './src/vendor.ts',
'app': './src/main.ts'
成为多填充物.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');
}
和供应商.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();
在这种情况下,polyfills 很好,供应商拥有来自应用程序 (~main.ts( 的所有第三方依赖项以及 vendor.ts 中的所有依赖项,而应用程序只有项目中的内容。
它似乎编译得很好,但是当我执行代码时,ERROR TypeError: this.http.get(...).map is not a function
我的 service.get(...地图((
我的感觉是vendor.ts没有导入rxjs扩展。
有人知道如何解决这个问题吗?
如果我只使用
fuse.bundle('polyfills').instructions('> polyfills.ts');
fuse.bundle('vendor').instructions('> vendor.ts');
fuse.bundle('app').instructions('> main.ts').watch().hmr();
它可以工作,但是我的应用程序.js捆绑包包含太多东西,从303K到2.4MB
确保你的顺序正确。尝试WebIndex插件,它有助于自动注入脚本。如果您发布配置文件,它可能会告诉您出了什么问题