Ошибка: сопоставляется более одного модуля. Используйте опцию skip-import, чтобы пропустить импорт компонента в ближайший модуль

Когда я пытаюсь создать компонент в угловом кли, он показывает мне эту ошибку. Как я могу избавиться от него?

Ошибка: сопоставляется более одного модуля. Используйте опцию skip-import, чтобы пропустить импорт компонента в ближайший модуль.

Я использую угловую версию cli: 1.4.1

Ответы

Ответ 1

Задайте модуль с помощью параметра --module. Например, если основным модулем является app.module.ts, запустите это:

ng g c new-component --module app

Или, если вы находитесь в другом каталоге, тогда

ng g c component-name --module ../

Ответ 2

Попробуйте это: Это работает для меня

ng generate component componentName --module=app.module

Ответ 3

Это вызвано тем, что поколение попыталось добавить ваш компонент в модуль, то есть добавить эту строку

import { MyComponent } from './Components/my-component/my-component.component';

но найдено 2 модуля.

Как указано здесь, они исправили ситуацию, когда до тех пор, пока в корневой папке src/app у вас есть только 1 модуль, все в порядке, поэтому просто переместите вторичные модули в подпрограмму -folder.

В противном случае вы должны использовать --module

Ответ 4

Он работает для меня

ng g component component-name --skip-import

Ответ 5

Просто небольшое обновление для ответа Зиши.

В моем проекте все модули были помещены в папку под названием "modules", и все компоненты размещены в папке "components" в разделе "src/app",

folder structure

поэтому для создания компонента по определенному пути я использовал следующий синтаксис:

ng gc components_path/имя_компьютера --module modules_path/module_name

пример:

ng gc components/login --module модули/приложение

Ответ 6

Угловой CLI: 6.0.8
Узел: 10.4.0
ОС: linux x64
Угловое: 6.0.4

В случае наличия функционального модуля (например, manager.module.ts внутри подпапки eg//manager) с модулем маршрутизации, выведенным в отдельный NgModule (например, менеджер -routing.module.ts) сообщение об ошибке:

Совместим более одного модуля. Используйте опцию skip-import, чтобы пропустить импорт компонента в ближайший модуль.

не отображается, и компонент правильно сгенерирован и добавлен в модуль manager.module.ts.

НО БУДЬТЕ ОСТОРОЖНЫ соглашение об именовании! имя модуля маршрутизации должно заканчиваться на " -routing "!

Если модулю маршрутизации присвоено такое имя, как например manager-router.module.ts, CLI будет жаловаться на сообщение об ошибке и ожидать, что вы предоставите --module вариант для автоматического добавления импорта компонента:

ng generate component some-name --module=manager.module.ts

или же

ng generate component some-name --skip-import

если вы хотите добавить импорт компонента вручную

Ответ 7

  Когда приложение или библиотека имеют несколько вложенных модулей

myApp
  > src
    > app
      app.module.ts
      > routes
        > login
          > auth
          login.module.ts

Angular CLI

ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts 

NRWL NX angular CLI

ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts

Результат

myApp
  > src
    > app
      app.module.ts
      > routes
        > login
          > auth
            > my-auth
              my-auth.component.ts etc...
          login.module.ts

Ответ 8

Мой проект был создан с использованием Visual Studio Community 2017 и он создает 3 отдельных модуля: app.browser.module, app.server.module и app.shared.module

Чтобы создать мои компоненты, я проверил выше ответы и нашел, что мой модуль - app.shared.module.

Итак, я запускаю:

ng g c componentName --module=app.shared.module

Ответ 9

Когда в папке приложения находится более одного модуля, генерирование компонента с командой ниже:

ng generate component New-Component-Name

Причина - это угловой CLI обнаруживает несколько модулей и не знает, в каком модуле добавить компонент. Итак, вам нужно явно указать, какой компонент модуля будет добавлен:

ng generate component New-Component-Name --module=ModuleName

Ответ 10

При попытке создать новый компонент в папке я получаю сообщение об ошибке ниже.

ошибка: более одного модуля соответствует. Используйте параметр skip-import, чтобы пропустить импорт компонента в ближайший модуль.

Я использовал приведенную ниже команду, и новый компонент был успешно создан в папке.

 ng g c folderName/my_newComponent ---module ../app

Ответ 11

Вариант 1:

  • ng создать компонент new-component --module app

Здесь автоматически добавляется новый компонент в модуль приложения.

Вариант 2: если вы не хотите автоматически связываться с любым средством модуля. Создайте модуль для этого нового компонента, а затем создайте компонент

  • ng создать пользователя модуля
  • ng создать пользователя компонента

Ответ 12

попробуйте ng g component header --module app, это для меня работа

Ответ 13

если у вас более одного модуля, вам нужно указать имя модуля

 ng g c componentName --module=modulename.module 

Ответ 14

Angular CLI: 8.3.1

если у вас есть несколько файлов module.ts внутри модуля, вам нужно указать, для какого файла модуля вы генерируете компонент.

ng g c modulefolder/componentname --module=modulename.module

например, у меня есть общая папка модуля, внутри которой у меня есть shared.module.ts и material.module.ts вот так

shared
  > shared.module.ts
  > material.module.ts

и я хочу создать компонент sidebar для shared.module.ts тогда я буду выполнять следующую команду

ng g c shared/sidebar --module=shared.module

если вы хотите экспортировать компонент, выполните следующую команду

ng g c shared/sidebar --module=shared.module --export

Ответ 15

Angular CLI: 8.3.4 Узел: 10.16.3 Angualr: 4.2.5

Я использовал команду "dotnet new angular" для генерации проекта, и он сгенерировал 3 разных модуля в папке приложения (хотя простой тест с ng новым именем проекта просто генерирует один модуль.

посмотрите модули в вашем проекте и определите, какой модуль вам нужен, а затем укажите имя

ng g c componentName --module=[name-of-your-module]

Вы можете узнать больше о модулях здесь:https://angular.io/guide/architecture-modules

Ответ 16

В качестве взлома, ниже шагов, работал на меня.

1) Перенесите файлы *.module.ts из src/app в местоположение вне проекта.

2) Выполнить команду для создания компонента [ng gc component-name]

3) Верните файлы *.module.ts в src/app/