更新 npm start 后的 Angular cli 出现错误

问题描述:

我使用 angular cli 创建应用程序并使用后端代理处理后端并使用聚合物(vaadin)它可以正常工作,直到我更新到 angular cli 1.0.0-beta.22 它给出错误

I create application using angular cli and use backend proxy to handle backend and using polymer(vaadin) it work correctly until I update to angular cli 1.0.0-beta.22 it give Error

Tried to find bootstrap code, but could not. Specify either statically analyzable bootstrap code or pass in an entryModule to the plugins options.

proxy.conf.json

{
  "/api": {
    "target": "http://127.0.0.1:3000",
    "secure": false
  }
}

ma​​in-polymer.ts

document.addEventListener('WebComponentsReady', () => {
  require('./main.ts');
});

ma​​in.ts

import './polyfills.ts';

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/';

if (environment.production) {
  enableProdMode();
}

// platformBrowserDynamic().bootstrapModule(AppModule);
platformBrowserDynamic().bootstrapModule(AppModule);

我该如何纠正?

这是由 Angular CLI 最新更新引起的.在最新的更新中,webpack 在 main.ts 顶层搜索 boostrap 模块.在 main-polymer.ts 中,main.tsaddEventListener 包裹,所以 webpack 找不到 bootstrap 模块,这就是它报错的原因.

This is caused by Angular CLI latest update. In the latest update, webpack searches for boostrap Module in main.ts top level. In main-polymer.ts, main.ts is wrapped by addEventListener so webpack can't find the bootstrap module that's why it reports an error.

进一步参考 github.com/angular/angular-cli/issues/2887