2016-11-21 5 views
4

Я пытаюсь создать новые компоненты с помощью инструмента CLI Angular2, используя следующую команду:Угловое 2 CLI «нг генерировать компонент» команда не находит app.module

ng generate component test 

После выполнения, новые файлы компонентов генерируются, но ссылки не добавляются в файл app.module.ts:

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

enter image description here

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

Я думаю, что это может иметь что-то делать с моим файлом углового cli.json, но это, кажется, хорошо: enter image description here

Любые идеи?

UPDATE: Это моя структура папок проекта, просто. Я удалил папки, которые не являются релевантными:

enter image description here

код в app.module.ts заключается в следующем:

import { NgModule }   from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { HttpModule }  from '@angular/http'; 
import { AppComponent }  from './app.component'; 
import { SearchComponent } from './search/search.component'; 

@ 
NgModule({ 
    declarations: [ 
     AppComponent, 
     SearchComponent 
    ], 
    imports: [ 
     BrowserModule, 
     HttpModule 
    ], 
    providers: [ 
    ], 
    bootstrap: [ 
     AppComponent 
    ] 
}) 
export class AppModule { } 
+0

Каков ваш текущий рабочий каталог? – jonrsharpe

+0

Привет, Jon, это «C: \ Sources \ Search». Это происходит, когда я выполняю команду из папки поиска, или из поиска/src, или Search/src/app. Всегда один и тот же результат, не найти app.module, только файлы помещаются в другую новую папку в дереве. –

+0

@ Андрей Лучанский, вы уверены? на скриншоте отображается «C: \ Sources» что-то здесь кажется выключенным. вы создаете компонент с именем 'test', но он помещает его в' src/app/search', даже если это не отображается вообще. – Brocco

ответ

1

вопрос, почему угловой кли не может найти модуль приложения в том, что Знак «@» и имя «NgModule», где не на одной строке. Это не делает код провалиться по исполнению, но он предотвращает форму Cli обнаруживая модуль:

@ 
NgModule({ 

если вы пишете как на одной и той же линии, кли может найти модуль успешно:

@NgModule({ 
+1

У меня такая же проблема. Однако в моем случае нет ничего плохого в @NgModule. ( – zhekaus

+1

такой же проблема в моем случае. @NgModule в одном ligne .. – VANILKA

0

Нет проблем. Но не добавлен ваш установленный компонент. Поэтому добавьте свое имя компонента в app.module.ts.
пример

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 

import { AppComponent } from './app.component'; 
import { HeaderComponent } from './header/header.component';<!-- My Installed Component --> 
import { FooterComponent } from './footer/footer.component';<!-- My Installed Component --> 

@NgModule({ 
    declarations: [ 
    AppComponent, 
    HeaderComponent,<!-- My Installed Component --> 
    FooterComponent<!-- My Installed Component --> 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 
Смежные вопросы