Angular CLI是开发Angular应用的标准工具,提供了完整的项目脚手架、构建、测试和部署功能。本章将详细介绍所有CLI命令及其用法。
npm install -g @angular/cli 或 yarn global add @angular/cli
创建一个新的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
向项目中添加功能包。
# 添加Angular Material
ng add @angular/material
# 添加PWA支持
ng add @angular/pwa
# 添加Bootstrap
ng add @ng-bootstrap/ng-bootstrap
# 添加Tailwind CSS
ng add @ngneat/tailwind
更新项目到最新版本。
# 检查可更新包
ng update
# 更新Angular核心包
ng update @angular/core @angular/cli
# 更新所有包
ng update --all
# 从特定版本迁移
ng update @angular/cli@13 @angular/core@13
使用原理图生成代码文件。
ng g component component-name
ng g service service-name
ng g module module-name
ng g directive directive-name
ng g pipe pipe-name
ng g guard guard-name
ng g interface interface-name
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
启动开发服务器并实时重新加载。
| 选项 | 说明 | 默认值 |
|---|---|---|
| --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
编译应用到输出目录(默认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
通过Angular CLI部署项目到各种平台。
# 部署到Firebase(需先配置)
ng deploy
# 部署到GitHub Pages
ng deploy --base-href=/repository-name/
# 部署到Azure
ng deploy --configuration=production
# 部署前构建
ng deploy --preview
运行单元测试。
| 选项 | 说明 | 默认值 |
|---|---|---|
| --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
# 使用特定配置
ng e2e --configuration=production
# 指定浏览器
ng e2e --browser=firefox
# 运行特定测试套件
ng e2e --suite=smoke
运行代码检查工具。
| 选项 | 说明 | 示例 |
|---|---|---|
| --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
格式化代码文件。
# 格式化所有文件
ng format
# 格式化特定文件
ng format src/app/app.component.ts
# 格式化目录
ng format src/app/components/
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
ng version
查看Angular CLI、Angular核心版本
ng help
显示帮助信息
ng config
查看或编辑配置
ng analytics
分析构建信息
ng run
运行自定义原理图
ng xi18n
提取国际化信息(已弃用)
{
"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"
}
}
}
}
}
}
}
ng g c component-name
使用缩写g代替generate
启用CLI自动完成:
ng completion
ng build && ng test
使用&&组合多个命令
使用配置文件保存常用参数
ng update更新依赖--dry-run预览生成的文件--watch=falsenpm install -g @angular/cling cache cleanNODE_OPTIONS=--max-old-space-size=4096| 命令 | 别名 | 功能 | 常用选项 |
|---|---|---|---|
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 |