Angulaire 2 : Pas de NgModule métadonnées
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:
paquet.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="/">
</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.
- où est
app.module.ts
fichier? - Toutes mes excuses, j'ai ajouté que maintenant.
- êtes-vous à l'aide angulaires-cli?
Vous devez vous connecter pour publier un commentaire.
Le problème est dans votre
main.ts
fichier.Vous essayez de bootstrap
App
, ce qui n'est pas un vrai module.Supprimer ces deux lignes et les remplacer par la ligne suivante:
et il va corriger votre erreur.
const platform = platformBrowserDynamic(); platform.bootstrapModule(AppModule);
Seulement après la chute de laconst
et en combinant les déclarations fonctionne.const platform
séparément en effet résolu le problème, ici, trop. Pourquoi cette question? il est (DEVRAIT être syntaxiquement 100% la même chose... Et pourquoi le rapport d'erreur deAngular/cli
donc très mauvais au sujet de cette :/J'ai eu cette erreur, même si j'avais tout ce que les réponses ci-dessus suggère à la place. Un simple modifier dans la
app.module.ts
de fichier ( suppression d'un support et de le remettre) a fait le tour.ng serve
erreurs, mais encoreng build
donne le même message d'erreur et ne pas créer le dossier distng build --prod --aot=false
Essayez de supprimer node_modules
rm -rf node_modules
et l'emballage-lock.jsonrm -rf package-lock.json
,après cette série
npm install
.package-lock.json
œuvres.Après la mise à jour Angulaire 6, j'ai rencontré le
"ERROR in No NgModule metadata found for 'AppModule'."
avec l'angle-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.
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.
2)Installer cli en utilisant la commande suivante.
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.
3) nœud Installer des paquets en utilisant la commande suivante.
4)Installer angulaire@cli en utilisant la commande suivante.
Remarque :en cas d'échec,essayez de nouveau 🙂
5) Célébrer 🙂
Il y a plus de raisons de vous faire cette erreur. Cela signifie que votre application n'a pas pu construire comme prévu.
Vérifiez les éléments suivants..
principale raison.
Systemjs à Webpack, Si certains de vos dépendances ne sont pas modulaire
la nature, vous pouvez obtenir cette erreur, vérifiez que trop.
dans angulaire 2 et les supprimer.
la syntaxe de le Cadre, par Ex: de routage syntaxe a été changé dans
Angular2..
Module correct.
Réponse tardive, mais cela pourrait aider quelqu'un. J'ai eu la même erreur, essayé tous mentionné précédemment suggestions, cogné la tête contre le mur, mais rien n'a fonctionné.
Sur une observation attentive, j'ai remarqué ce qui suit dans l'app.le module.ts:
Donc je me suis cogné la tête un peu plus. La virgule supplémentaire, très innocemment mise en evidence, par WebStorm, comme un léger avertissement, ravagé par l'insertion d'un emplacement vide dans le Tableau. Watchout pour la élision piège 😉
Dans votre
main.ts
, vous êtes d'amorçage à la fois votre AppModule et votre Application. Il faut juste être le AppModule, qui a ensuite démarre l'Application.Si vous comparez votre main.ts pour les docs, vous verrez la différence - il suffit de supprimer toutes les références à l'Application de main.ts
Angulaire 5, j'ai résolu un problème similaire par ugrading à
@angular/cli
1.6.1 de 1.5.5:Pendant
ng serve
l'erreur que j'ai eu était:J'ai eu le même problème et je ne pouvais pas résoudre après avoir lu toutes les réponses ci-dessus. Puis j'ai remarqué qu'une virgule supplémentaire dans des déclarations a été la création d'un problème. Enlevé, le problème est résolu.
Espère que cela peut aider. Dans mon cas, je travaille avec lazy-load module et j'ai trouvé cette erreur conduire à
ERROR in No NgModule metadata found for 'MyModule'.
in app-routing.module.ts
{ path: 'mc3', loadChildren: 'app/module/my/my.module#MxModule' },
Si je lance
ng serve --aot
chrome dev outil peut me direError: Cannot find 'Mc4Module' in 'app/module/mc3/mc3.module'
J'ai eu ce problème quand j'ai cloné à partir d'un dépôt git et je l'avais résolu lorsque j'ai créé un nouveau projet et de ré-inséré le dossier src de l'ancien projet.
Le dossier src est le seul dossier nécessaire lors du déploiement de votre angulaire de l'application, mais vous devez reconfigurer l'environnement de dev, à l'aide de cette solution.
J'ai enfin trouvé la solution.
après le succès de leur application de test, ça marche 🙂
Si non, alors suivez les étapes ci-dessous:
Remarque: en Cas d'échec, essayez de nouveau l'étape 4. Il va travailler.
vous devez activer le ngModel directive. Cela se fait par l'ajout du FormsModule pour les importations tableau[] dans le AppModule.
Ensuite, vous devez également ajouter les importations en provenance de @angulaire, formes dans l'application.le module.ts fichier:
importer { FormsModule } à partir de '@angulaire, formes';
Nous avons dû faire face à ce problème sur Angulaire de la Cli 1.7.4 à la fois. Au départ, nous avons
Et la fixation de ce fil pour le problème ci-dessus.
Nous avons supprimé paquet-lock.json
Vous pouvez aussi retirer votre dossier node_modules. Puis nettoyer le cache.
ré-installé angulaire de la cli:
Et ensuite vous pouvez faire npm install de nouveau, juste pour s'assurer si tout est installé.
Puis exécutez
À assurez-vous si tous vos node_modules sont synchronisés les uns avec les autres. Si il y a une dépendance de désadaptation, c'est l'occasion pour nous de comprendre.
Enfin exécuter mnp start/ng servir. il doit tout régler.
C'est le code de triche que nous allons suivre si nous rencontrons des problèmes avec la cli, avant de nous creuser plus profond. 95% des fois, il résout tous les problèmes.
Espère que ça aide.
Dans mon cas, j'ai essayé de mettre à jour mon angulaire 6 projet à l'aide de
ng update
après que l'univers entier s'effondrer.J'ai essayé de mettre à jour mon projet à l'aide de cette commande:
Et puis j'ai trouvé un problème avec rxjs paquet et j'ai également exécuter cette commande.
- npm install --enregistrer rxjs
Et puis j'ai l'erreur
- Je résoudre ce par la suppression de mon node_modules dossier dans la racine du projet
puis-je exécuter:
Qui est, de toutes les œuvres de nice.
J'ai trouvé que la cause de ce problème, dans mon cas, c'est que je l'ai combiné mon Angulaire de l'application avec un node.js application dans la même arborescence des sources, et dans la racine
tsconfig.json
j'ai eu:"files": [
"./node_modules/@types/node/index.d.ts"
]
J'ai changé de ce
"compilerOptions": {
"types": ["node"]
}
Et afin de prévenir les types de nœuds être utilise dans angulaire de votre application, ajoutez ceci à
tsconfig.app.json
:"compilerOptions": {
"types": []
}
Je vais vous donner quelques suggestions.Supprimer tous ces mentionnées ci-dessous
À l'aide de ngcWebpack Plugin j'ai eu cette erreur lors de ne pas spécifier de mainPath ou entryModule.