web-dev-qa-db-fra.com

Angular cli après la mise à jour npm start donne une erreur

Je crée une application à l'aide de cli angulaire et j'utilise un proxy pour gérer le traitement et en utilisant un polymère (vaadin), il fonctionne correctement jusqu'à ce que je passe à angular cli 1.0.0-beta.22. 

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
  }
}

main-polymer.ts

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

main.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);

comment puis-je corriger cela?.

15
Rumes Shyaman

Ceci est dû à Angular CLI dernière mise à jour. Dans la dernière mise à jour, Webpack recherche le module boostrap au niveau supérieur de main.ts. Dans main-polymer.ts, main.ts est encapsulé par addEventListener afin que Webpack ne puisse pas trouver le module d'amorçage, c'est pourquoi il signale une erreur.

Autre référence github.com/angular/angular-cli/issues/2887

9

En utilisant github, j'ai trouvé une solution de contournement qui fonctionne pour moi. J'ai supprimé le fichier main-polymer.ts et modifié le fichier principal ts comme indiqué ci-dessous.

main.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();
}

var webComponentsFlag = false;
document.addEventListener('WebComponentsReady',() =>{
  if (!webComponentsFlag)
    platformBrowserDynamic().bootstrapModule(AppModule);
  webComponentsFlag = true;
});
if (webComponentsFlag)
 platformBrowserDynamic().bootstrapModule(AppModule);

et cela a fonctionné pour moi. mais ne peut pas construire en utilisant ng construire pour résoudre ce problème, référez-vous au

question github

2
Rumes Shyaman

J'ai remarqué que cela se produit parfois lorsque vous avez une instruction d'importation non valide! si, pour une raison quelconque, vous avez supprimé un composant et que vous y avez importé, il vous donnera:

"J'ai essayé de trouver le code d'amorçage, mais n'y suis pas parvenu. Spécifiez soit du code d'amorçage analysable de manière statique, soit transmettez un entryModule aux options du plug-in." 

1
Sergio

J'ai eu le même problème, ce que j'ai fait est de revenir à 1.0.0-beta.21 et ça marche encore :)

0
Hebert Godoy