69 votes

Angular 2: aucune métadonnée NgModule trouvée

Je suis tout nouveau Angulaire 2 et de tenter de suivre un tutoriel vidéo que j'ai trouvé. En dépit de toutes les étapes, Angulaire juste ne fonctionnera pas; j'obtiens l'erreur suivante:

compiler.umd.js:13854 Uncaught Error: No NgModule metadata found for 'App'.

et le composant ne prend pas en charge.

Voici mes fichiers:

package.json:

{
  "name": "retain",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "webpack --config webpack.spec.ts --progress --color && karma start",
    "start": "webpack-dev-server --inline --colors --progress --display-error-details --display-cached --port 3000  --content-base src"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0",
    "@angular/compiler": "2.0.0",
    "@angular/core": "2.0.0",
    "@angular/forms": "2.0.0",
    "@angular/http": "2.0.0",
    "@angular/platform-browser": "2.0.0",
    "@angular/platform-browser-dynamic": "2.0.0",
    "@angular/router": "3.0.0",
    "core-js": "2.4.1",
    "lodash": "4.16.1",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.25"
  },
  "devDependencies": {
    "@types/core-js": "0.9.33",
    "@types/lodash": "4.14.35",
    "@types/node": "6.0.39",
    "awesome-typescript-loader": "2.2.4",
    "css-loader": "0.23.1",
    "jasmine-core": "2.4.1",
    "karma": "1.1.1",
    "karma-chrome-launcher": "1.0.1",
    "karma-jasmine": "1.0.2",
    "karma-mocha-reporter": "2.0.4",
    "raw-loader": "0.5.1",
    "to-string-loader": "1.1.4",
    "ts-helpers": "1.1.1",
    "typescript": "2.0.2",
    "webpack": "1.13.1",
    "webpack-dev-server": "1.14.1"
  }
}

index.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset=UTF-8>
    <title>Retain</title>
    <link rel="icon" href="data:;base64,iVBORw0KGgo=">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href='https://cdnjs.cloudflare.com/ajax/libs/normalize/4.1.1/normalize.min.css' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/flexboxgrid/6.3.0/flexboxgrid.min.css" type="text/css">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
      rel="stylesheet">
    <link href="global.css" rel="stylesheet">
    <base href="stackoverflow.com/">
  </head>
  <body>

    <app>
      ... before angular loads.
    </app>

    <script src="polyfills.bundle.js"></script>
    <script src="vendor.bundle.js"></script>
    <script src="main.bundle.js"></script>

  </body>
</html>

principal.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module'; 

import { App } from './app/app';

const platform = platformBrowserDynamic();
platform.bootstrapModule(App);

platformBrowserDynamic().bootstrapModule(AppModule);

app.ts:

import { Component } from '@angular/core';
import { NgModule }      from '@angular/core';

@Component({
  selector: 'app',
  template: `
    <div>
      <h3>
        Yo, world!
      </h3>
    </div>
    `
})

export class App {}

app.le module.ts:

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { App } from './app'; 

@NgModule({ 
  imports: [BrowserModule], 
  declarations: [App], 
  bootstrap: [App] 
}) 

export class AppModule{}; 

Merci pour votre temps.

94voto

Alf Moh Points 3265

J'ai eu cette erreur même si j'avais tout ce que les réponses ci-dessus suggéraient en place. Une simple modification dans le fichier app.module.ts (comme supprimer un crochet et le remettre en place) a fait l'affaire.

40voto

Alexander Ciesielski Points 5397

Le problème est dans votre fichier main.ts .

 const platform = platformBrowserDynamic();
platform.bootstrapModule(App);
 

Vous essayez d'amorcer App , ce qui n'est pas un vrai module. Supprimez ces deux lignes et remplacez-les par la ligne suivante:

 platformBrowserDynamic().bootstrapModule(AppModule);
 

et cela corrigera votre erreur.

31voto

Thomas Gotwig Points 349

Essayez de supprimer node_modules rm -rf node_modules et package-lock.json rm -rf package-lock.json , après cette exécution npm install .

25voto

Bahri Gungor Points 1411

Après la mise à jour Angulaire 6, j'ai rencontré l' "ERROR in No NgModule metadata found for 'AppModule'." avec le angulaires-bootstrap-md paquet, ce qui nécessite une tsconfig.json "inclure", comme suit:

"include": ["node_modules/angular-bootstrap-md/**/*.ts", "src/**/*.ts"],

Après des jours de dépannage et de tirer les cheveux, la solution a été d'organiser la liste, de sorte que l'application.le module.ts était situé tout d'abord, en vertu de l' "src/**/*.ts". Angulaire bug, peut-être?

"include": ["src/**/*.ts","node_modules/angular-bootstrap-md/**/*.ts" ],

J'espère sincèrement cela aide quelqu'un, que j'ai tout essayé dans ce message et rien n'a aidé. Après ce changement, tout compile et fonctionne à merveille, comme prévu.

9voto

Kapil Thakkar Points 203

Le problème est résolu que lorsque re installé angulaire/cli manuellement. Suivez les étapes suivantes. (exécuter toute commande sous Angulaire du projet dir)

1)Supprimer webpack en utilisant la commande suivante.

npm remove webpack

2)Installer la cli en utilisant la commande suivante.

npm install --save-dev @angular/cli@latest

après le succès de leur application de test, ça marche :)

si non, alors suivez les étapes ci-dessous.

1) Supprimer node_module dossier. 2) vider le cache en utilisant la commande suivante.

npm cache clean --force

3) nœud Installer des paquets en utilisant la commande suivante.

npm install

4)Installer angulaire@cli en utilisant la commande suivante.

npm install --save-dev @angular/cli@latest

Remarque :en cas d'échec,essayez de nouveau :)

5) Célébrer :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X