如何使用angular-cli在特定文件夹中生成组件?


220

我将angualr4与angular-cli一起使用,并且能够使用以下命令创建新组件。

E:\HiddenWords>ng generate component plainsight

但是我需要在Plainsight中生成一个子组件。有没有办法处理angular-cli?


15
ng生成组件your / path / from / the / app / folder / plainsight
max19921992年

4
如@Maxime所述,或cd进入目录
Z. Bagley

Answers:


124

使用时ng g component plainsight/some-name会创建一个新目录

最终输出将是:

plainsight/some-name/some-name.component.ts

为避免这种情况,请使用flat选项 ng g component plainsight/some-name --flat ,它将在创建新文件夹的情况下生成文件

plainsight/some-name.component.ts

11
--flat选项正是我想要的!
事故

1
@ user3611927 --flat是答案,因为它将使用现有文件夹并且仅使不存在的文件夹。完善!!这应该是默认的行为方式恕我直言
Andrew Day

38

快速,简单且无错误的方法

即您要在app/component文件夹中创建一个组件,然后按照以下步骤

  1. 右键单击要创建组件的文件夹
  2. 选择Open in Command Prompt选项
  3. 在新终端中(您将看到所选的路径),然后键入 ng g c my-new-component

您也可以通过此图像检查此过程

在此处输入图片说明


1
您是个天才,或者我只是fokin stoopid ...最好的方式!
6

19

ng g c component-name

对于指定自定义位置: ng g c specific-folder/component-name

component-name将在特定文件夹内创建。

Similarl方法可以用于生成其它部件一样directivepipeserviceclassguardinterfaceenummodule,等。


12

生成组件的更短代码:ng g c component-name
指定其位置:ng g c specific-folder/component-name


附加信息
更多较短的代码可生成指令:ng g d directive-name
指定其位置:ng g d specific-folder/directive-name



4

上面的选项对我不起作用,因为与在终端中创建目录或文件不同,当CLI生成组件时,默认情况下,它将src / app路径添加到您输入的路径中。

如果我是这样从主应用程序文件夹生成组件的(错误方式)

ng g c ./src/app/child/grandchild 

生成的组件是这样的:

src/app/src/app/child/grandchild.component.ts

所以我只需要输入

ng g c child/grandchild 

希望这可以帮助某人


3

我对以上答案(包括--flat)没有任何运气,但是对我有用的是:

cd path/to/specific/directory

从那里,我跑了 ng g c mynewcomponent




1

一旦进入项目目录。先用cd path/to/directory再用ng g c component_name --spec=false它可以使一切自动化,并且没有错误

g c装置生成部件



1

Angular CLI提供了应用程序开发中所需的所有命令。根据您的特定要求,您可以轻松地使用ng gng generate)完成工作。

ng g c directory/component-namecomponent-namedirectory文件夹中。

以下是您可以在应用程序中使用的一些简单命令的映射。

  1. ng g c comp-name 要么 ng generate component comp-name创建名称为“ comp-name”的组件
  2. ng g s serv-name 要么 ng generate service serv-name创建名称为“ serv-name”的服务
  3. ng g m mod-name 要么 ng generate module mod-name创建一个名为“ mod-name”的模块
  4. ng g m mod-name --routingng generate module mod-name --routing使用角度路由创建名称为“ mod-name”的模块

希望这可以帮助!

祝好运!


1

如果您使用VSCode,请考虑使用Angular控制台

它为Angular CLI提供了一个接口。您将看到一个指定路径的选项。

Angular CLI非常强大且可扩展。实际上,功能太多了,对开发人员来说,为他们可用的每个命令提供所有不同的配置选项很有帮助。

借助Angular Console,您将获得建议,甚至可以拉起最容易忘记或很少使用的功能!

首先,最重要的是,Angular Console是使用Angular CLI提供的内容的一种更高效的方式。


0

首先要创建一个组件,您需要使用:

  • ng gc组件名称

    通过使用上述命令,将在具有
    您上面指定的(componentname)的文件夹中创建新组件。

但是,如果您需要在另一个组件内部或特定文件夹中创建一个组件,则:

  • ng gc componentname / newComponentName

0

使用自定义目录时需要使用--dryRun

您可以将自定义目录路径与ng命令一起传递。

ng g c myfolder\mycomponent

但是,您可能会错过拼写路径的机会,并且可能会创建新文件夹或更改目标目录。由于这个原因dryRun非常有帮助。它显示更改将如何受到影响的输出。
在此处输入图片说明

验证结果后,您可以运行相同的命令而无需-d进行更改。

--dryRun = true | false

如果为true,则运行并报告活动而不写出结果。

默认值:false

别名:-d

官方文件:-https: //angular.io/cli/generate

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.