ng generate application <app-name>和ng new <app-new>之间的区别

opt*_*nal 7 angular angular-cli-v6

我知道ng generate application <app-name>仅在角度应用程序文件夹中有效的区别。但是还有其他区别。

Xin*_*nan 9

ng new NAME 使用默认应用程序创建新的工作区

ng g application NAME 在现有工作区中创建一个新的应用程序

官方文档没有详细解释这一点。因此,我建议您挖出一些博客文章,为它做介绍性文章。如以下内容:

Angular 6工作区


Asm*_*fri 6

ng init:在当前目录下新建一个应用

ng new:创建一个新目录并在新目录中运行 ng init。

ng generate:为你现有的应用程序添加功能,例如添加模块、组件和服务等。 generate 命令和不同的子命令也有快捷方式,所以ng g命令类似于ng generate


Myc*_*cah 5

长话短说:

  • ng new <app-name>创建一个新工作区(默认情况下)在该工作区中创建一个新应用程序。
  • ng generate application <app-name>在现有工作区中创建新应用程序。

详细信息

如果您想了解更多内容,请参考多个来源。但这里有一个很好的概述。

概述

工作区- 由 Angular CLI 提供支持的 Angular 项目(即应用程序和库)的集合,通常位于单个源代码控制存储库(例如 git)中。来源: https: //angular.io/guide/glossary#workspace

您可以在 Angular 工作区的上下文中开发应用程序。工作区包含一个或多个项目的文件。项目是组成独立应用程序或可共享库的一组文件。

Angular CLI ng new 命令创建一个工作区。

ng new <my-project>

当您运行此命令时,CLI 会在新工作区中安装必要的 Angular npm 包和其他依赖项,并使用名为 的根级应用程序my-project。工作区根文件夹包含各种支持和配置文件,以及包含生成的可以自定义的描述性文本的自述文件。

默认情况下,ng new 在工作区的根级别创建一个初始框架应用程序及其端到端测试。该框架用于一个简单的欢迎应用程序,该应用程序已准备好运行且易于修改。根级应用程序与工作区同名,源文件位于src/工作区的子文件夹中。

来源:https://angular.io/guide/file-struct#workspace-and-project-file-struct

当您在工作区中生成其他应用程序或库时,它会进入projects/子文件夹。

新生成的应用程序包含根模块的源文件,以及根组件和模板。每个应用程序都有一个src包含逻辑、数据和资产的文件夹。

来源: https: //angular.io/cli#workspaces-and-project-files

例子

没有应用程序的工作区

使用该标志创建一个新项目--createApplication=false,以便在工作区中不会创建任何应用程序(默认为true)。请注意,我们的工作区中没有projectssrc文件夹。

> ng new my-workspace --createApplication=false

使用 ng new 创建一个没有应用程序的新工作区

现在进入创建的工作区文件夹并生成一个应用程序,您将看到projects/my-app我们的工作区中现在有一个文件夹。

> cd my-workspace
> ng generate app my-app

使用 nggenerate 在工作区中创建应用程序

您还可以再次使用在工作区中创建第二个应用程序ng generate,您将在我们的工作区中看到这两个应用程序。

>ng generate app my-other-app

使用 nggenerate 在工作区中创建另一个应用程序

带有应用程序的工作区

ng new 对于较小的项目,另一种更常见的方法是使用不带createApplication标志(或将其设置为)的方式同时创建工作区和应用程序true。在这里您将获得一个工作区,其中包含src包含我们的应用程序的文件夹。

>ng new my-app
或者
>ng new my-app --createApplication=true

使用 ng new 创建的工作区和应用程序