如何使用 Angular CLI 在特定文件夹中生成组件?

Posted

技术标签:

【中文标题】如何使用 Angular CLI 在特定文件夹中生成组件?【英文标题】:How to generate components in a specific folder with Angular CLI? 【发布时间】:2018-04-01 18:15:43 【问题描述】:

我将 Angular 4 与 Angular CLI 一起使用,我可以使用以下命令创建一个新组件。

E:\HiddenWords>ng generate component plainsight

但我需要在 plainsight 中生成一个子组件。有没有办法用 Angular CLI 做到这一点?

【问题讨论】:

ng 生成组件 your/path/from/the/app/folder/plainsight 如@Maxime 所述,或 cd 进入目录 当你第一次运行类似的东西时有一个很好的结果:ng generate component plainsight 作为父母,现在你想生成一个孩子然后运行:ng generate component plainsight/child 我使用的一个方便的工具是命令末尾的 -d ,它会进行空运行,即实际上不会将文件添加到您的项目中,只会告诉您它们会去哪里。这样您就可以检查它们是否进入了所需的文件夹:ng generate component path/to/folder/plainsight -d 【参考方案1】:

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

最终输出将是:

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

为避免这种情况,请使用flat option ng g component plainsight/some-name --flat 它将生成文件而不创建一个新文件夹

plainsight/some-name.component.ts

【讨论】:

--flat 选项正是我想要的! @user3611927 --flat 是答案,因为它将使用现有文件夹并且只创建不存在的文件夹。完美的!!这应该是默认行为恕我直言【参考方案2】:

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

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

【讨论】:

【参考方案3】:

ng g c component-name

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

这里component-name 将在特定文件夹中创建。

类似的方法可用于生成其他组件,例如directivepipeserviceclassguardinterfaceenummodule 等。

【讨论】:

【参考方案4】:

有几种方法可以在特定目录中创建组件。

方法 1:“在集成终端中打开” - 快速、简单且无错误的方法

即您想在app/common 文件夹中创建一个组件,如下图所示,然后按照以下步骤操作

    右键单击要在其中创建组件的文件夹。 选择选项Open in Integrated TerminalOpen in Command Prompt。 在新终端中(您将看到您选择的路径),然后输入ng g c my-component

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

方法二:“复制相对路径”并粘贴到终端

    右键单击要在其中创建组件的文件夹 从上下文菜单中选择Copy Relative Path 在终端上,键入cd,按空格,然后按ctrl + v 粘贴复制的路径并按Enter 您会看到该目录已更改。

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

方法三:终端输入完整路径

即你想在某个文件夹中创建component,你输入整个命令,包括路径和组件名称。

ng g c relative-path/my-component

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

注意(方法 3): angular 不允许您在 app 文件夹之外创建组件,因此对于组件,您的基本路径将是 app,这就是为什么在我的情况下我必须从 @987654335 开始@而不是src/app/auth/a-component

【讨论】:

你是个天才,否则我就是个笨蛋……有史以来最好的办法! 这将在新终端中打开 这是最好的解决方案。谢谢! 这绝对是最好的【参考方案5】:

简单

ng g component plainsight/some-name

它将创建“plainsight”文件夹并在其中生成一些名称组件。

【讨论】:

【参考方案6】:
ng g c folderName/SubFolder/.../componentName --spec=false 

【讨论】:

【参考方案7】:

尝试使用

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

如果您感觉更舒服,也可以手动尝试。

【讨论】:

【参考方案8】:

在命令提示符或项目终端中转到项目文件夹。

运行 cmd : ng g c 组件名

【讨论】:

【参考方案9】:

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

cd path/to/specific/directory

从那里,我运行了ng g c mynewcomponent

【讨论】:

【参考方案10】:

进入项目目录后。 使用 cd path/to/directory 然后使用 ng g c component_name --spec=false 它会自动执行所有操作并且不会出错

g c 表示生成组件

【讨论】:

Angular 9 “未知选项:'--spec'”出现以下错误 不要忽略规范文件。测试是有原因的。【参考方案11】:

Angular CLI 提供了您在应用开发中所需的所有命令。对于您的特定要求,您可以轻松地使用ng g (ng generate) 来完成工作。

ng g c directory/component-name 将在directory 文件夹中生成component-name 组件。

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

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

希望这会有所帮助!

祝你好运!

【讨论】:

【参考方案12】:

首先创建一个你需要使用的组件:-

ng g c 组件名

通过使用上面的命令,新组件将被创建在一个文件夹中 (组件名称)您在上面指定。

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

ng g c 组件名/新组件名

【讨论】:

【参考方案13】:

如果您使用 VSCode,请考虑使用Angular Console

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

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

使用 Angular 控制台,您将获得建议,甚至可以提取最容易忘记或很少使用的功能!

Angular 控制台首先是使用 Angular CLI 提供的更高效的方式。

【讨论】:

【参考方案14】:

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

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

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

生成的组件是这样的:

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

所以我只需要输入

ng g c child/grandchild 

希望这对某人有所帮助

【讨论】:

【参考方案15】:

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

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

ng g c myfolder\mycomponent

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

验证结果后,您可以在不使用-d 的情况下运行相同的命令来进行更改。

--dryRun=true|false

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

默认值:假

别名:-d

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

【讨论】:

【参考方案16】:

要在 VS 代码中打开终端,只需输入 CTRL + ~ 即可打开终端。步骤如下:

    检查您需要生成新组件的特定组件。

    将路径重定向到您需要生成另一个组件的特定文件夹/组件

例如:cd src/app/particularComponent

particularComponent 处,输入您需要在其中生成新组件的组件名称。

    进入需要生成新组件的组件后,只需键入以下命令:ng g c NewComponentName

(将名称 NewComponentName 更改为您所需的组件名称。)

【讨论】:

【参考方案17】:

在特定文件夹中创建组件:

ng g c folder-name/component-name

使用 Angular-CLI 在文件夹内为特定(现有)模块创建一个组件:

ng g c folder-name/component-name --module=folder-name/moduleName.module.ts

【讨论】:

我们可以使用 -ng g c modules/moduleName/IfComponentsFolder/ComponentYouWantToCreate --project parentProjectName【参考方案18】:

超级简单,

其他方式,

在终端中转到您的文件夹,

**xxx\FOLDER_NAME>cd FOLDER_NAME

xxx\FOLDER_NAME> ng 生成组件plainsight

如果你像我一样懒惰复制路径(Visual Studio 代码),则奖励积分,

【讨论】:

【参考方案19】:

使用'ng generate component ./target_directory/Component_Name'

【讨论】:

【参考方案20】:

2021 使用IDE插件进一步加速

如果您想进一步加快这一常规过程并避免常见错误,您可以尝试使用 Visual Studio Code 插件。

例如,我使用Angular-Schematics 并避开终端。您可以通过鼠标选择调用 ng cli。

【讨论】:

【参考方案21】:

使用此命令打开特定文件夹终端

ng g c 组件名称 --flat

【讨论】:

以上是关于如何使用 Angular CLI 在特定文件夹中生成组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Angular CLI 安装特定版本的引导程序

使用 angular-cli 在 Angular 中为静态文件添加前缀路径

安装特定版本的 ng cli

使用 Angular-CLI 创建组件并将其添加到特定模块

Spring Boot不提供静态内容(angular-cli)以在tomcat上提供应用程序

如何在此文件夹中创建一个全新的 Angular 组件?为啥我使用 Angular CLI 获得此错误消息?