web-dev-qa-db-fra.com

Je ne peux pas ajouter de nouveau composant avec angular cli in asp.net core spas

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.

app.module.shared.ts

De plus, j'ai 3 fichiers pour app.module.ts pas une :\ :

app.module.browser.ts

app.module.shared.ts

app.module.server.ts

20
Ashkan Rahmani

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.

26
R. Richards

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"  
23
trueboroda

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'

5
System.Exception

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.

1

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.

1
Reddy Surekha

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.

1
sudar

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
1
Dorin Brage