Je veux ajouter un nouveau composant dans asp.net core 2.0 SPA avec angular 4 avec cli angulaire avec cette version:
@ angulaire/cli: 1.4.2
nœud: 8.4.0
os: Linux x64
lorsque j'exécute cette commande ng g c vehicle-form
sur un répertoire de composants a obtenu cette erreur:
Erreur: impossible de trouver un NgModule pour le nouveau composant. Utilisez l'option skip-import pour ignorer l'importation de composants dans NgModule. Impossible de trouver un NgModule pour le nouveau composant. Utilisez l'option skip-import pour ignorer l'importation de composants dans NgModule.
De plus, j'ai 3 fichiers pour app.module.ts
pas une :\ :
app.module.browser.ts
app.module.shared.ts
app.module.server.ts
Vous utilisez la Angular CLI dans un projet qui n'a pas été construit avec la CLI à l'esprit, vous devez donc prendre quelques étapes supplémentaires. Le message d'erreur vous indique que vous voulez le faire.
Tout d'abord, exécutez le ng g c vehicle-form
commande et inclure la --skip-import=true
option.
Ensuite, ajoutez à la main la déclaration du composant dans le fichier de module d'application approprié. Dans ce cas, le app.module.shared.ts
, où tous les autres composants de l'application sont déclarés.
Ou, vous pouvez exécuter le ng g c vehicle-form
et inclure le --module='app.module.shared.ts'
. Vous devrez peut-être entièrement qualifier le chemin d'accès au fichier de module avec cela. Je ne l'ai pas testé, alors soyez prêt à essayer vous-même quelques trucs avec cela.
En savoir plus sur ng générer un composant: générer un composant .
[~ # ~] mise à jour [~ # ~] (2018-03-01)
Microsoft a fourni de nouveaux modèles SPA à utiliser avec les applications ASP.NET Core 2.0. Vous pouvez trouver plus de détails à leur sujet ici . Le nouveau modèle angulaire inclut la prise en charge de CLI angulaire . Donc, si vous connaissez la CLI, cela devrait ressembler un peu plus à la maison. Cela signifie que vous pouvez le ng g
commandes pour générer du code avec ce nouveau modèle.
Dans mon cas, le problème était dans le projet e2e. Après avoir déplacé mon projet de angular 4 à angular 6 un nouveau fichier de configuration angular a été ajouté "angular.json")) à la place "angular.conf.json". Dans une section projets, deux projets sont apparus: l'un d'eux mon "ng-app" et l'autre "ng-app-e2e". Lorsque j'essaie d'exécuter la commande "ng gc", j'attrape une même erreur . Une cause se trouvait dans la section racine de "ng-app-e2e". Elle avait une valeur vide. Je l'ai définie dans "e2e". Maintenant, tout va bien! Cela se produit malgré le fait que le projet par défaut défini dans "ng-app" .
"projects": {
"ng-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
...
},
"ng-app-e2e": {
"root": "e2e", <-- SALVATION
"sourceRoot": "e2e",
"projectType": "application",
...
}
},
"defaultProject": "ng-app"
Dans le cas d'un projet ASP Net Core Angular, le module app.module est divisé en 3 fichiers comme vous l'avez souligné. Le angular CLI doit décider où ajouter la référence au composant dans le module, vous devez donc lui fournir de l'aide.
ng g c moduleName --module = 'app.module.browser.ts'
dans .angular-cli.json en partie "apps" remplacer "./src" par "src"
"apps": [{"root": "src", "outDir": "dist",
Cette erreur se produira si le fichier app.module.ts n'est pas présent. Veuillez vérifier si le fichier est présent et s'il n'existe pas, créez-en un manuellement.
ng générer le composant componentName --module = app.module
Dans mon projet, j'ai également obtenu l'erreur ci-dessus.J'ai essayé cette commande, cela fonctionne correctement.Je pense que cela vous aidera.
J'ai eu le même problème lors de la conversion de la version 5 en 6. J'ai trouvé la solution de github . quand j'ai supprimé e2e de sourceRoot Cela a résolu le problème.
J'ai rencontré le même problème, puis j'ai réalisé que je n'étais pas dans dossier racine du projet.
Je ne travaillais pas quand
/c/some/path/your_project/src/bla/bla/bla
Mais ça ça marche (pour moi ça a marché)
/c/some/path/your_project