AngularCLI命令大全

Angular CLI是开发Angular应用的标准工具,提供了完整的项目脚手架、构建、测试和部署功能。本章将详细介绍所有CLI命令及其用法。

安装Angular CLI: npm install -g @angular/cliyarn global add @angular/cli

1. 项目创建与管理

new - 创建新项目

ng new <项目名> [选项]

创建一个新的Angular工作区。

选项 说明 默认值
--style 样式文件格式 (css|scss|sass|less) css
--routing 生成路由模块 false
--prefix 组件选择器前缀 app
--strict 启用严格模式 false
--skip-tests 跳过测试文件 false
--skip-git 跳过Git初始化 false
--package-manager 包管理器 (npm|yarn|pnpm) npm
示例:
# 创建基本项目
ng new my-app

# 创建带路由和SCSS的项目
ng new my-app --routing --style=scss

# 创建启用严格模式的项目
ng new my-app --strict

# 创建项目并使用yarn
ng new my-app --package-manager=yarn

add - 添加包

ng add <包名>

向项目中添加功能包。

示例:
# 添加Angular Material
ng add @angular/material

# 添加PWA支持
ng add @angular/pwa

# 添加Bootstrap
ng add @ng-bootstrap/ng-bootstrap

# 添加Tailwind CSS
ng add @ngneat/tailwind

update - 更新Angular

ng update [包名]

更新项目到最新版本。

示例:
# 检查可更新包
ng update

# 更新Angular核心包
ng update @angular/core @angular/cli

# 更新所有包
ng update --all

# 从特定版本迁移
ng update @angular/cli@13 @angular/core@13
项目创建流程
ng new my-app
选择配置
安装依赖
ng serve
开发应用

2. 代码生成 (Generate)

generate - 生成代码 (别名: g)

ng generate <原理图> <名称> [选项]

使用原理图生成代码文件。

组件
ng g component component-name
--flat --skip-tests --inline-template
服务
ng g service service-name
--flat --skip-tests
模块
ng g module module-name
--routing --flat
指令
ng g directive directive-name
--flat --skip-tests
管道
ng g pipe pipe-name
--flat --skip-tests
守卫
ng g guard guard-name
--flat --skip-tests
接口
ng g interface interface-name
--type
枚举
ng g enum enum-name
选项 说明 示例
--project 指定项目(多项目工作区) --project=admin
--path 指定生成路径 --path=app/features
--flat 不创建文件夹 --flat
--skip-tests 不生成测试文件 --skip-tests
--inline-template 使用内联模板 --inline-template
--inline-style 使用内联样式 --inline-style
--style 样式文件格式 --style=scss
--spec 生成测试文件(旧版) --spec=false
详细示例:
# 生成带路由的模块
ng g module admin --routing

# 生成组件到特定路径
ng g component admin/dashboard --path=app/admin

# 生成服务并提供到根
ng g service auth --providedIn=root

# 生成带内联模板和样式的组件
ng g component inline-comp --inline-template --inline-style

# 生成接口并导出类型
ng g interface models/user --type=model

3. 开发服务器

serve - 启动开发服务器 (别名: s)

ng serve [选项]

启动开发服务器并实时重新加载。

选项 说明 默认值
--port 端口号 4200
--host 主机名 localhost
--open 自动打开浏览器 false
--ssl 启用HTTPS false
--prod 使用生产配置 false
--configuration 指定配置 development
--watch 监视文件变化 true
--live-reload 启用实时重载 true
示例:
# 基本启动
ng serve

# 指定端口和主机
ng serve --port 4300 --host 0.0.0.0

# 自动打开浏览器
ng serve --open

# 使用HTTPS
ng serve --ssl

# 使用生产配置(用于测试生产构建)
ng serve --prod

# 禁用实时重载
ng serve --live-reload=false

4. 构建与部署

build - 构建项目 (别名: b)

ng build [项目名] [选项]

编译应用到输出目录(默认dist/)。

选项 说明 默认值
--prod 生产构建(等价于 --configuration=production) false
--configuration 指定构建配置
--aot 启用AOT编译 true(生产模式)
--source-map 生成源映射 true(开发模式)
--optimization 启用优化 true(生产模式)
--output-path 输出目录 dist/项目名
--base-href 基地址 /
--deploy-url 部署URL
--watch 监视模式 false
--stats-json 生成stats.json文件 false
示例:
# 开发构建
ng build

# 生产构建
ng build --prod

# 指定输出路径
ng build --output-path=dist/production

# 自定义基地址
ng build --base-href=/my-app/

# 生成构建分析文件
ng build --stats-json

# 监视模式构建
ng build --watch

deploy - 部署项目

ng deploy [项目名] [选项]

通过Angular CLI部署项目到各种平台。

示例:
# 部署到Firebase(需先配置)
ng deploy

# 部署到GitHub Pages
ng deploy --base-href=/repository-name/

# 部署到Azure
ng deploy --configuration=production

# 部署前构建
ng deploy --preview

5. 测试

test - 运行测试 (别名: t)

ng test [项目名] [选项]

运行单元测试。

选项 说明 默认值
--watch 监视模式 true
--code-coverage 生成代码覆盖率报告 false
--browsers 指定浏览器 Chrome
--include 包含特定测试文件 **/*.spec.ts
--exclude 排除特定测试文件
--reporters 指定报告器 progress
--single-run 运行一次后退出 false
示例:
# 基本测试(监视模式)
ng test

# 生成代码覆盖率
ng test --code-coverage

# 运行一次测试(CI/CD场景)
ng test --watch=false --browsers=ChromeHeadless

# 包含特定测试
ng test --include='**/auth/*.spec.ts'

# 使用不同报告器
ng test --reporters=junit,html

e2e - 端到端测试

ng e2e [项目名] [选项]

运行端到端测试。

示例:
# 运行E2E测试
ng e2e

# 使用特定配置
ng e2e --configuration=production

# 指定浏览器
ng e2e --browser=firefox

# 运行特定测试套件
ng e2e --suite=smoke

6. 代码质量工具

lint - 代码检查

ng lint [项目名] [选项]

运行代码检查工具。

选项 说明 示例
--fix 自动修复问题 --fix
--format 输出格式 --format=json
--force 强制执行(即使有错误) --force
--type-check 启用类型检查 --type-check
示例:
# 运行lint检查
ng lint

# 自动修复问题
ng lint --fix

# 输出JSON格式
ng lint --format=json

# 检查特定项目
ng lint my-project

format - 代码格式化

ng format [路径]

格式化代码文件。

示例:
# 格式化所有文件
ng format

# 格式化特定文件
ng format src/app/app.component.ts

# 格式化目录
ng format src/app/components/

7. 多项目管理

多项目工作区命令

列出项目
ng list

显示工作区中的所有项目

生成应用
ng generate application

在工作区中生成新应用

生成库
ng generate library

在工作区中生成新库

构建特定项目
ng build 项目名

构建指定项目

示例:
# 查看所有项目
ng list

# 生成新应用
ng generate application admin-app

# 生成库
ng generate library shared

# 构建特定应用
ng build admin-app --prod

# 构建库
ng build shared

8. 其他实用命令

版本信息
ng version

查看Angular CLI、Angular核心版本

帮助
ng help

显示帮助信息

配置
ng config

查看或编辑配置

分析构建
ng analytics

分析构建信息

运行原理图
ng run

运行自定义原理图

提取i18n
ng xi18n

提取国际化信息(已弃用)

9. 自定义构建配置

angular.json 配置示例

{
  "projects": {
    "my-app": {
      "architect": {
        "build": {
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                }
              ]
            },
            "staging": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.staging.ts"
                }
              ]
            }
          }
        },
        "serve": {
          "configurations": {
            "production": {
              "browserTarget": "my-app:build:production"
            },
            "staging": {
              "browserTarget": "my-app:build:staging"
            }
          }
        }
      }
    }
  }
}

10. CLI快捷键和技巧

快速生成
ng g c component-name

使用缩写g代替generate

自动完成

启用CLI自动完成:

ng completion
组合命令
ng build && ng test

使用&&组合多个命令

参数复用

使用配置文件保存常用参数

CLI最佳实践
  • 保持CLI版本与Angular版本一致
  • 定期运行ng update更新依赖
  • 使用--dry-run预览生成的文件
  • 为不同环境创建构建配置
  • 利用多项目工作区管理大型应用
  • 在CI/CD中使用--watch=false
常见问题解决
  • 命令未找到:重新安装npm install -g @angular/cli
  • 版本冲突:检查package.json中的版本
  • 构建失败:清理缓存ng cache clean
  • 内存不足:增加内存限制NODE_OPTIONS=--max-old-space-size=4096
  • 文件权限:避免使用sudo运行CLI

11. 命令速查表

命令 别名 功能 常用选项
ng new - 创建新项目 --routing, --style
ng generate g 生成代码 --flat, --skip-tests
ng serve s 启动开发服务器 --port, --open
ng build b 构建项目 --prod, --watch
ng test t 运行测试 --watch, --code-coverage
ng lint - 代码检查 --fix, --format
ng deploy - 部署项目 --base-href
ng update - 更新依赖 --all, --next