69 votes

Impossible de trouver un NgModule. Utilisez l'option skip-import pour ne pas importer de NgModule.

J'obtiens l'erreur mentionnée dans le sujet de ce message lorsque j'utilise le CLI pour créer un nouveau composant : ng g c my-component --project=my-project (Aucun composant n'est créé)

J'ai vu d'autres messages avec le même message d'erreur, mais aucun d'entre eux n'inclut Nrwl/Nx, qui je pense est impliqué d'une manière ou d'une autre. Le projet a commencé par Ng4 et a été mis à jour en Ng6.

Avez-vous une idée de la façon dont je peux résoudre ce problème ?

Merci.

TTE

Environnement :

  • CLI Angular : 6.0.8
  • Node : 8.9.4
  • Système d'exploitation : win32 x64
  • Angulaire : 6.0.6
  • @angular-devkit/architect 0.6.8
  • @angular-devkit/build-angular 0.6.8
  • @angular-devkit/build-optimizer 0.6.8
  • @angular-devkit/core 0.6.8
  • @angular-devkit/schematics 0.6.8
  • @angular/cdk 6.3.1
  • @angular/cli 6.0.8
  • @angular/material 6.3.1
  • @ngtools/webpack 6.0.8
  • @schematics/angular 0.6.1
  • @schematics/update 0.6.8
  • rxjs 6.2.1
  • typescript 2.7.2
  • webpack 4.8.3
  • nrwl/nx 6.1.0

UPDATE #1

J'ai essayé de laisser tomber le --project entièrement (donc juste ng g c my-component ) et j'ai toujours le même problème. Je ne sais pas encore ce que cela signifie.

1 votes

Veuillez essayer cette approche stackoverflow.com/a/53696599/2668045 Ça devrait aller.

112voto

Debojyoti Points 1199

Solution rapide

1) Changement actuel répertoire dans cmd/terminal pour src/app

cd src/app (linux)

cd .\src\app\ (Windows)

2) Exécuter commandes maintenant

ng g c myComponent

3 votes

La raison pour laquelle cela fonctionne est que la hiérarchie des dossiers src/app par défaut de votre projet a été modifiée. Par conséquent, tout ce qui ne correspond pas à cette situation ne fonctionnera pas. Lorsque vous générez un projet par défaut avec cli, vous ne devriez pas avoir à faire cela.

1 votes

Ce n'est pas la seule raison, si vous exécutez l'option ng generate component dans un dossier différent de src/app vous obtiendrez cette erreur.

28voto

bvdb Points 898

La génération de composants vise à faire 2 choses :

  • créer code source pour le composant
  • enregistre le composant dans un module (par défaut, dans le app.module.ts )

Le problème, c'est que vous n'avez pas de app.module.ts . Vous l'avez renommé en quelque chose d'autre, ou peut-être même en avez-vous plusieurs. Dans ce cas, il y a 2 solutions possibles :

  1. vous effectuez l'enregistrement du composant manuellement. (plus facile)

    ng g component mycomponent --skip-import

  2. vous spécifiez le module avec l'option -m interrupteur. (peut être cassé) Il y a un long fil de discussion à ce sujet ici : https://github.com/nrwl/nx/issues/526

2voto

vikas thakur Points 49
  1. Premier moyen :
    Je pense que vous devez d'abord aller dans votre dossier d'applications puis taper cmd ;
    ng g c your_com_name --spec false
    ou ng g c your_com_name
    Il va certainement créer votre composant ou résoudre votre problème.

  2. deuxième voie :
    Retirez votre e2e de votre angular.json->projects :
    définitivement

    { 
        your_project_name-e2e:{}
    }

    exemple : my-first-app-e2e

    {
          "root": "e2e/",
          "projectType": "application",
          "architect": {
            "e2e": {
              "builder": "@angular-devkit/build-angular:protractor",
              "options": {
                "protractorConfig": "e2e/protractor.conf.js",
                "devServerTarget": "my-first-app:serve"
              }
            },
            "lint": {
              "builder": "@angular-devkit/build-angular:tslint",
              "options": {
                "tsConfig": "e2e/tsconfig.e2e.json",
                "exclude": [
                  "**/node_modules/**"
                ]
              }
            }
          }
        }

2voto

TimTheEnchanter Points 880

J'ai fini par effacer complètement node_modules en vidant le cache du fil et en exécutant yarn pour réinstaller tous les paquets. J'ai également modifié mon angular.json de sorte que mon chemin d'accès ressemble à ceci pour toutes les applications et bibliothèques :

"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"

Je ne suis pas sûr de savoir lequel des deux a résolu le problème, mais tout semble être en ordre maintenant. Au moins, le problème immédiat a disparu.

J'espère que cela aidera quelqu'un d'autre.

TTE

1voto

lanchana gupta Points 91

J'ai eu le même problème, dans le fichier angular.json, j'ai cherché mon-projet-e2e (remplacez mon-projet par votre nom de projet) et ensuite j'ai changé :

"root": "" a "root": "e2e" et l'a sauvé. Tout fonctionnait à nouveau.

La solution a été précisée dans ce lien .

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