2016-10-25 5 views
10

я обычно генерировать классы с угловым 2 кли с помощью следующей команды:Как сгенерировать ваши классы в определенной папке с помощью Angula2 CLI?

ng g class todo

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

В документации есть пример, где они генерируют компонент в определенной папке, но я не имел никакого успеха с опцией класса

Я попытался следующие варианты:

ng g class models/todo

ng g class ../models todo

ng g class models todo

Они Ресул t в ошибке, что путь недействителен, что заставляет меня думать, что этот параметр поддерживается, но я не могу понять это, или в случае последнего объединяет имя предполагаемой папки с именем класса.

ответ

10

Сформированные элементы для углового CLI относительны ...

, если вы находитесь в корневой каталог (или исходный каталог), вы считаетесь находящимися в приложении ...

~/me/foo > ng g c bar 
// ~/me/foo/src/app/bar/bar.component* 

~/me/foo/src > ng g c bar 
// ~/me/foo/src/app/bar/bar.component* 

, если вы находитесь в каталоге приложения или дальше вниз по структуре папок вы будете генерировать, где вы ...

~/me/foo/src/app/feature > ng g c bar 
// ~/me/foo/src/app/feature/bar/bar.component* 

~/me/foo/src/app/feature > ng g c ../bar 
// ~/me/foo/src/app/bar/bar.component* 

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

~/me/foo/src/app > ng g c a/b/c/d/e/f/g/bar 
// Error 
+0

Пример компонента уже работал (это было в документации), что я Я заинтересован в классах, тем не менее ваш ответ действительно предоставил ключ: если я создам папку перед рукой, я могу сгенерировать класс непосредственно к ней. –

+1

Построение классов работает одинаково, за исключением того, что классы не генерируют свой собственный каталог по умолчанию. – Brocco

+0

Да, это вопрос моего вопроса, могу ли я создать конкретный каталог, когда я сгенерирую свой класс, cli не может, но если я создам папку перед рукой, я могу сгенерировать класс непосредственно в ней из cli. –

4
ng generate component my-new-component 

ng g component my-new-component # using the alias 

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

если в каталоге src/app/feature/ и запустить

ng g component new-cmp 

ваш компонент будет генерироваться в src/app/feature/new-cmp

, но если вы запустите

ng g component ../newer-cmp 

ваш компонент будет генерироваться в src/app/newer-cmp

, который работает для классов также

проверка: Github angular-cli

+0

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

+2

ng g класс app/models/todo (u начинается с папки приложения) –

+0

если он не работает, попробуйте: ng g models modelsTodo –

5

Для создания компоненты Todo внутри папки модели в проекте, просто убедитесь, что вы находитесь в корневой папке проекта и введите:

нг дс/модель/Todo

Кроме того, если вы хотите указать имя имени модуля объявления, вы можете использовать опцию -m.

Например, если у вас есть модуль модели, и вы хотите обновить этот модуль для объявить новый компонент ToDo в:

нг дс/модели/Todo -m модель

С уважением

+0

создать компонент не класса – amorel

2
ng g cl model/UserInfo 
works fine in angular5 
1

добавляя к Картикеян Karunanithi простой ответ,

ng g i model/UserInfo 

отлично работает, если вы хотите получить интерфейс ...