Я не могу добавить новый компонент с angular cli в asp.net core spas
Я хочу добавить новый компонент в asp.net core 2.0 SPA с angular 4 с angular cli с помощью этого версия:
@angular/cli: 1.4.2
node: 8.4.0
os: Linux x64
когда я запускаю эту команду ng g c vehicle-form
в каталоге компонентов, получил эту ошибку:
Ошибка: не удалось найти NgModule для нового компонента. Используйте опцию skip-import, чтобы пропустить импорт компонентов в NgModule. Не удалось найти NgModule для нового компонента. Используйте опцию skip-import, чтобы пропустить импорт компонентов в NgModule.
app.module.shared.ts
Кроме того, у меня есть 3 файла для app.module.ts
не один: \:
app.module.browser.ts
app.module.shared.ts
app.module.server.ts
Ответы
Ответ 1
Вы используете Angular CLI в проекте, который не был построен с CLI, поэтому вам нужно сделать несколько дополнительных шагов. Сообщение об ошибке говорит, что вы хотите сделать.
Сначала запустите команду ng gc vehicle-form
и --skip-import=true
параметр --skip-import=true
.
Затем добавьте объявление компонента в файл соответствующего модуля приложения вручную. В этом случае app.module.shared.ts
, где app.module.shared.ts
все остальные компоненты приложения.
Или вы можете запустить ng gc vehicle-form
и включить --module='app.module.shared.ts'
. Возможно, вам придется полностью определить путь к файлу модуля. Я не тестировал его, поэтому будьте готовы попробовать несколько вещей с этим по своему усмотрению.
Подробнее о ng генерировать компонент: сгенерировать компонент.
ОБНОВЛЕНИЕ (2018-03-01)
Microsoft выпустила несколько новых шаблонов SPA для использования с приложениями ASP.NET Core 2.0. Вы можете найти более подробную информацию о них здесь. Новый шаблон Angular включает поддержку Angular CLI. Итак, если вы знакомы с CLI, тогда это должно немного походить на дом. Это означает, что вы можете выполнять команды ng g
для генерации кода с помощью этого нового шаблона.
Ответ 2
В моем случае проблема была в проекте e2e. После того, как я переместил проект с углового 4 на угловой 6, новый угловой конфигурационный файл был добавлен вместо "angular.json" вместо "angular.conf.json". В разделе проектов появился два проекта: один из них - мое "ng-app" и другое "ng-app-e2e". Когда я пытаюсь выполнить команду "ng gc", я поймаю ту же ошибку. Причина была в корневом разделе "ng-app-e2e". У него было пустое значение. Я установил его в "e2e". Теперь все в порядке! Это происходит, несмотря на то, что проект по умолчанию установлен в "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"
Ответ 3
В случае проекта ASP Net Core Angular приложение .module разбивается на 3 файла по мере того, как вы выделили. CLI Angular должен решить, где добавить ссылку на компонент в модуле, поэтому вам необходимо предоставить его с некоторой помощью.
ng g c moduleName --module = 'app.module.browser.ts'
Ответ 4
в .angular-cli.json
в части "приложения" заменить "./src" на "src"
"apps": [ { "root": "src", "outDir": "dist",
Ответ 5
ng сгенерировать компонент componentName --module = app.module
В моем проекте также я получил вышеуказанную ошибку, я пробовал эту команду, это работает правильно. Я думаю, это поможет вам.
Ответ 6
Я столкнулся с той же проблемой, а затем понял, что я не в корневой папке проекта.
Я не работал, когда
/c/some/path/your_project/src/bla/bla/bla
Но он работает (для меня это сработало)
/c/some/path/your_project
Ответ 7
У меня была та же проблема при преобразовании версии 5 в 6. Я нашел решение от github. когда я удалил e2e из sourceRoot. Он решил проблему.
Ответ 8
Эта ошибка возникнет в случае, если файл app.module.ts отсутствует. Убедитесь, что файл присутствует, а если он не существует, создайте его вручную.