【发布时间】:2017-10-23 12:26:23
【问题描述】:
在使用 webpack 构建时尝试优化供应商捆绑包,我使用的是 NgcWebpackPlugin。
令我惊讶的是,即使我们使用 AOT,也存在 angular 编译器模块。
我是否需要以某种方式明确声明我不需要捆绑包中的编译器?还是我错过了什么?
这是vendor.ts:
import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router';
import '@angular/forms'
import '@angular/animations'
import 'rxjs';
import '@ngrx/core';
import '@ngrx/store';
import 'platform';
import 'underscore';
import 'typed-immutable-record';
import 'toastr';
import 'socket.io-client';
import 'moment';
import 'moment-timezone';
import 'jquery';
import 'immutable';
import 'humanize-duration';
import 'fuzzy';
import 'bricklayer';
import 'ngx-bootstrap';
这是boot-aot.ts:
/**
* Angular bootstrapping
*/
import { platformBrowser } from '@angular/platform-browser';
import { decorateModuleRef } from './environment';
/**
* App Module
* our top level module that holds all of our components.
*/
import { AppModuleNgFactory } from '../../compiled/app/src/app.module.ngfactory';
/**
* Bootstrap our Angular app with a top level NgModule.
*/
export function main(): Promise<any> {
return platformBrowser()
.bootstrapModuleFactory(AppModuleNgFactory)
.then(decorateModuleRef)
.catch((err) => console.error(err));
}
export function bootstrapDomReady() {
document.addEventListener('DOMContentLoaded', main);
}
bootstrapDomReady();
【问题讨论】:
-
你的
vendor.ts是什么样的? -
@lbrahim 添加了它
-
您是否有 2 个主/引导文件,一个用于 JiT,另一个用于 AoT?您可以为您的 AoT 构建放弃
@angular/platform-browser-dynamic,因为platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);是您的 AoT 引导程序的一般外观。