Когда я пытаюсь создать компонент в angular cli, он показывает мне эту ошибку. Как мне от этого избавиться?
Ошибка: более одного модуля соответствует. Используйте параметр skip-import, чтобы пропустить импорт компонента в ближайший модуль.
Я использую угловую версию Cli: 1.4.1
ng g c admin/manageUsers ---module ../app
Попробуйте это: это работает для меня
ng generate component componentName --module=app.module
источник
Это вызвано тем, что поколение пыталось добавить ваш компонент в модуль, т.е. добавить эту строку
но он нашел 2 модуля.
Как указано здесь , они исправили это в ситуации, когда, пока в корневой папке src / app у вас есть только 1 модуль, у вас все в порядке, так что просто переместите дополнительные модули в подпапку.
В противном случае вы должны использовать
--module
источник
modules
подпапку, и теперь все хорошо.Это работает на меня
источник
Просто небольшое обновление к ответу Зиши.
В моем проекте все модули были помещены в папку «модули», а все компоненты помещены в папку «компоненты» в «src / app»
поэтому для создания компонента по определенному пути я использовал следующий синтаксис:
пример :
источник
Угловой CLI: 6.0.8
Узел: 10.4.0
ОС: linux x64
Угловой: 6.0.4
Если в подпапке, например, «/ manager», например, имеется функциональный модуль (например, manager.module.ts ), модуль маршрутизации которого выведен в отдельный модуль NgModule (например, manager-routing.module.ts ), сообщение об ошибке:
Соответствует более одного модуля. Используйте параметр skip-import, чтобы пропустить импорт компонента в ближайший модуль.
не появляется, и компонент правильно генерируется и добавляется в модуль manager.module.ts .
НО БУДЬТЕ ОСТОРОЖНЫ ! имя модуля маршрутизации должно заканчиваться на " -routing "!
Если модулю маршрутизации присваивается имя, например, manager-router.module.ts , CLI будет выдавать сообщение об ошибке и ожидать, что вы предоставите опцию --module для автоматического добавления импорта компонента:
или
если вы предпочитаете добавить импорт компонента вручную
источник
-
Сделал трюк! Я имелlib-name.routing.module.ts
вместоlib-name-routing.module.ts
.Есть два способа решить эту проблему.
1) Пропустите (используя --skip-import в команде) импорт по умолчанию и создайте компонент, и как только компонент будет создан, импортируйте его вручную везде, где вы хотите его использовать.
2) Укажите имя модуля явно, где вы хотите его импортировать
источник
источник
Я получаю ниже ошибку при попытке создать новый компонент в папке.
ошибка: более одного модуля соответствует. Используйте параметр skip-import, чтобы пропустить импорт компонента в ближайший модуль.
Я использовал приведенную ниже команду, и новый компонент был успешно создан в папке.
источник
Мой проект был создан с использованием Visual Studio Community 2017, и он создает 3 отдельных модуля: app.browser.module, app.server.module и app.shared.module
Чтобы создать мои компоненты, я проверил ответы выше и обнаружил, что мой модуль - app.shared.module.
Итак, я бегу:
источник
Если в папке приложения находится более одного модуля, генерировать компонент с помощью приведенной ниже команды не удастся:
Причина в том, что угловой интерфейс командной строки обнаруживает несколько модулей и не знает, в какой модуль добавить компонент. Итак, вам нужно явно указать, какой компонент модуля будет добавлен:
источник
если вы создаете в конкретном модуле, перейдите по этому пути и запустите ng gc componentname
еще создать модуль первый нг г модуль по имени
cd arc / app / modulename перейдите в путь по модулю и создайте компонент
источник
попробуйте ng g header заголовка компонента - Модуль приложения это работа для меня
источник
app.routing.module.ts
следовательно, ошибкаесли у вас более одного модуля, вам нужно указать имя модуля
источник
если у вас есть несколько
module.ts
файлов внутри модуля, вам нужно указать, для какого файла модуля вы генерируете компонент.например, у меня есть общая папка модуля, внутри которой я
shared.module.ts
иmaterial.module.ts
как этои я хочу сгенерировать
sidebar
компонент дляshared.module.ts
тогда я буду запускать следующую командуесли вы хотите экспортировать компонент, выполните следующую команду
источник
Angular CLI: 8.3.4 Узел: 10.16.3 Angualr: 4.2.5
Я использовал команду «dotnet new angular» для генерации проекта, и он сгенерировал 3 разных модуля в папке приложения (хотя простой тест с ng new project-name просто генерирует один модуль.
посмотрите модули в вашем проекте и определите, какой модуль вам нужен - затем укажите название
Вы можете прочитать больше о модулях здесь: https://angular.io/guide/architecture-modules
источник
В моем случае кажется, что ng не зарегистрирован в моем пути к среде. Я использовал команду npm run для запуска команд ng. Имейте в виду, что для передачи аргументов вам нужно дополнительное - согласно спецификации запуска npm.
Пример: npm run ng gc компоненты / планирование - --module = app
Или: npm запустить ng gc компоненты / планирование - --skip-import
источник
У меня было это предупреждение, когда это было в
angular.json
конфиге:Когда меняли на
"app"
все работало отлично.источник
Просто чтобы добавить к этому еще одну информацию для тех, кто, как и я, у кого есть только одно приложение.
У меня было настроено приложение с основным app.module.ts, и у меня была маршрутизация с модулем маршрутизации в его собственной папке под основным приложением. Я прошел и сделал некоторую «уборку», так как у меня было несколько других вещей, которые нужно было организовать лучше. Одна вещь, которую я сделал, это переместил routing.module.ts в корневую папку; так как это был единственный файл в папке, я решил, что ему не нужна собственная папка.
Сначала это работало нормально, но в следующий раз, когда я попытался сгенерировать новый компонент (некоторое время спустя, через IDE WebStorm), это сообщение не сработало. Прочитав это, я попытался поместить модуль маршрутизации обратно в отдельную папку, и он снова заработал.
Так что обратите внимание на предупреждение других, не перемещайте модуль маршрутизации в свою корневую папку! Я уверен, что есть и другие способы справиться с этим, но я доволен этим пока что в его собственной папке и использую генератор IDE, как раньше.
источник
Вы должны указать имя модуля как
Где
module-name
должно быть, что вы хотите обновить с недавно созданным компонентом.источник
Как взлом, ниже шагов, работал для меня.
1) Переместите файлы * .module.ts из src / app в папку вне проекта.
2) Выполнить команду для создания компонента
[ng g c component-name]
3) Переместите обратно файлы * .module.ts в src / app /.
источник