前言

一年半没有写 Angular 了. 现在又要开始写了. 复习过程中也顺便整理一下笔记呗.

介绍

CLI 是 Angular 的辅助工具. 输入一些 command 它会帮你 create 一些有结构的 files, 提升开发速度.

Global CLI 安装 & 升级

Global 安装 CLI

稳定版本

npm install -g @angular/cli

最新版本

npm install -g @angular/cli@next

指定版本

npm install -g @angular/cli@12.0.0

检查 version

ng version

升级 Global CLI

先删除, 然后安装新版本

npm remove @angular/cli -g
npm install -g @angular/cli

注: 这个只是升级 Global CLI 哦, 如何升级项目, 下面会讲到.

Help

不清楚有哪些 command 可以输入

ng help

它会显示所有的 command

还可以深入某个 command 的 help

ng new --help

太多资料, 这里就不展示了.

创建项目

创建简单项目

它会问你, 是否使用 routing 和 Scss style

files 结构

当前的 version 是 13, 使用 Yarn 但是没有 PnP. Github Issue: Yarn PnP Support Status

Angular 默认是开启 Unit Test 的, 如果不喜欢可以在创建项目的时候关掉它.

ng new my-angular-app --skip-tests --style=scss --routing

创建复杂项目

复杂项目指的是多个 app 和 library 在同一个项目里. 这个看个人管理啦. 类似 Visual Studio 一个 Solution 里面有很多 Project 的概念.

创建 solution

先创建 solution

ng new my-angular-solution --create-application=false

create-application=false 表示不要自动创建项目

里面只有 angular config, 没有任何项目信息.

创建项目

假设有 2 个项目要创建, 一个是 client-app, 一个是 admin-control-panel

cd my-angular-solution 进入 folder, 然后输入 command

ng generate application my-admin-control-panel --routing --style=scss --skip-tests
ng generate app my-client-app --routing --style=scss --skip-tests

Tips: 第 2 行用了 application 的缩写 app, Angular CLI 许多 command 都支持缩写, 所以可以尽量试试看, 比如 ng generate application 其实可以写成 ng g app

用的 command 是 ng generate app, 后面的参数和创建简单项目是一样的.

这时就多了 2 个 project folder 了, angular.json 也添加了一些 project 的 config.

创建 library

多个项目一定会有一些 shared code. 这时就可以创建一个 local library 来管理

ng generate library my-shared-lib

结构

这 3 个 项目虽然在同一个 solution 里, 但运行和发布都是分开的哦. 下面教你怎样运行起来.

Run a Project

for 简单项目, 运行 command

ng serve --open

open 是打开游览器的意思, 编译完它会自动开启游览器

这时就会看见美美的页面了

for 复杂项目, 需要选择其中一个 project, 而且它没有 --open 功能. 需要自己开 (我不知道为什么....)

ng serve --project=my-client-app

Use IP Address & Https

参考: Vs Code, Visual Studio 2022, Angular and Live Server Running Through Https and IP Address (Angular 的部分)

升级项目

先把 Global CLI 升级到最新, 然后 command

ng update

这时会显示能升级的 package

注: Angular 只支持一级一级升哦, 比如 v12 > 14 是不可以的, v12 > v13 > v14 就可以.

注: for 复杂项目, 一个 solution 里面所有的 project 都用统一版本会比较好管理. (我也不确定可以不可以不同 project 不同 version, 但最好不要. 太乱了)

接着输入升级 command

ng update @angular/cli @angular/core

后面是所有要升级的 package name, 用空格 seperate

创建 Module & Component

这个可能是最常用的 command 了. 在用 ng 的时候通常会有 3 给 pattern.

1. 创建 component to existing module

发生在想添加更多的 component 到一个 module 里时

2. 创建 component with new module

发生在一个想创建一个新组件, 同时它需要一个独立的 module 时

3. 创建 module with routing and component

发生在想创建一个 lazy load routing. (通常是一个新的 page)

创建 component to existing module

创建一个 component 到 app module 里.

到 app module 的 folder 开启 command box

运行 command

ng generate component first
ng g c first // 缩写

first 是 component 名字

CLI 会创建 folder 和 files

同时会到 AppModule 里添加 component 的 declaration

除了到指定的 folder 创建, 还有一个方式是在 command 中提供 component path 和 module name.

ng generate component client-app/src/app/first --module=app
ng g c client-app/src/app/first --m app // 缩写

path 就依据你的 command box 在哪里.

创建 component with new module

其实它没有一起创建的方式, 只能先创建 module

ng generate module second;
ng generate component second --module=second; ng g m second; ng g c second --m second; // 缩写

效果

创建 module with routing and component

Angular 有特别 command 专门给这个场景的哦

ng generate module third --route=third --module=app
ng g m third --route third --m app // 缩写

route 是 path

效果

Build as development for debug

Angular 有一个 compile 过程, 这就导致有时候很难理解, 总觉得它背地里是不是搞了一些鬼东西.

比较好的做法就是开一个测试环境, 然后 build 一个 development 的版本 (production 都做了压缩什么的, 已经没法看了), 看看最终运行的代码, 再去对照源码, 这样就可以解开一些古里古怪的现象.

参考: stackoverflow – Build in dev mode for Angular 12

在 angular.json 里面有区分 build development 和 production 的 config

运行 command 时可以选择使用的 config, 默认是 production

ng build --configuration development

还有一种方式是

env NG_BUILD_MANGLE=false NG_BUILD_MINIFY=false NG_BUILD_BEAUTIFY=true ng build --prod

不过在 Windows 下无法使用 env, 我懒得取研究了, 留一个链接在这, 以后才看

Angular – CLI的更多相关文章

  1. Angular环境准备和Angular cli

    Angular4.0来了,更小,更快,改动少 接下来为Angular4.0准备环境和学会使用Angular cli项目 1.环境准备: 1)在开始工作之前我们必须设置好开发环境 如果你的机器上还没有安 ...

  2. 迈向angularjs2系列(8):angular cli和angular2种子项目

    文章目录 1.angular cli快速搭建项目 2.angular2-seed 3.手动配置 题外话:如何更好的阅读本篇文章 一: angular cli的安装 Angular-cli(命令行界面, ...

  3. Visual Studio Code作为Angular开发工具常用插件安装、json-server安装与使用、angular/cli安装失败问题

    前提准备: 搭建好Angular开发环境 1 安装Visual Studio Code 教程简单,不会的去问度娘 2 安装Chrome浏览器 教程简单,不会的趣闻度娘 3 Visual Studio ...

  4. angular4.0 安装最新版本的nodejs、npm、@angular/cli的方法

    在使用ng项目的ui框架时,比如ng-zorro.angular Material,需要安装最新版本的@angular/cli: 配置ng-zorro框架 ng-zorro官网:https://ng. ...

  5. 使用Angular CLI生成 Angular 5项目

    如果您正在使用angular, 但是没有好好利用angular cli的话, 那么可以看看本文. Angular CLI 官网: https://github.com/angular/angular- ...

  6. Angular4---起步----环境配置安装@angular/cli

    学习angular,首先要搭建起angular的手脚架@angular/cli.首先需要NodeJS环境. 1.安装NodeJS 首先检查电脑是否安装了NodeJS环境,打开cmd命令行,运行node ...

  7. 使用Angular CLI进行单元测试和E2E测试

    第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...

  8. 使用Angular CLI从蓝本生成代码

    第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 这篇文章主要是讲生 ...

  9. 使用Angular CLI生成路由

    第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...

  10. 使用Angular CLI进行Build (构建) 和 Serve

    第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...

随机推荐

  1. SSRF结合Redis未授权的打法

    目录 SSRF + Redis未授权 案例 怎么构造 redis 数据包? Reference SSRF不难理解,服务器端请求伪造(英语:Server-side Request Forgery,简称S ...

  2. [oeasy]python0074_设置高亮色_color_highlight_ansi_控制终端颜色

    更多颜色 回忆上次内容 上次我们搞的还是颜色 FG foreground 前景色 30-37 BG background 背景色 40-47 这些 都可以和字体样式 结合起来 难道 就这几种颜色 吗? ...

  3. [oeasy]python0068_控制序列_清屏_控制输出位置_2J

    光标位置 回忆上次内容 上次了解了键盘演化的过程 ESC 从 组合键 到 独立按键 ESC 的目的 是进入控制序列 配置控制信息 控制信息 \033[y;xH 设置光标位置 \033[2J 清屏 这到 ...

  4. 关于写作那些事之快速上手Mermaid流程图

    本文主要介绍了如何快速上手 Mermaid 流程图,不用贴图上传也不用拖拉点拽绘制,基于源码实时渲染流程图,操作简单易上手,广泛被集成于主流编辑器,包括 markdown 写作环境. 通过本节内容你将 ...

  5. 简单聊聊WebDAV

    1.什么是WebDAV? WebDAV是一种基于HTTP协议的扩展,旨在提供在Web服务器上进行文件管理的标准化解决方案.它允许用户通过网络对远程主机上的文件进行读写.编辑和删除操作.与传统的HTTP ...

  6. LeetCode654. 最大二叉树

    题目链接:https://leetcode.cn/problems/maximum-binary-tree/description/ 题目叙述 给定一个不重复的整数数组 nums . 最大二叉树 可以 ...

  7. 系动词&使役动词

    系动词 系动词的作用就是赋值 I am a rabbit 把 a rabbit赋值给i我 我是一只兔子 The rabbit is smart 这兔子是聪明的 smart赋值给兔子 系动词连系的方式, ...

  8. docker 6.1测试

    https://www.cnblogs.com/xiugeng/p/10193333.html#_label1 1.设置重启策略 [root@docker ~]# cat /etc/docker/da ...

  9. Apache COC闪电演讲总结【OSGraph】

    大家能看到我最近一直在折腾与OSGraph这个产品相关的事情,之前在文章<妙用OSGraph:发掘GitHub知识图谱上的开源故事>中向大家阐述过这个产品的设计理念和应用价值.比方说以下问 ...

  10. 【BatchProgram】工作用的小工具 - 自动访问常用页面

    需求: 我需要打开很多页面,但是忘了收藏的话,每次都要重新去找一遍打开 页面很多,不是一两个了,为什么这么多?因为开发情况就是这样啊: 正式生产一个页面,UAT测试一个页面,本地调试一个页面 每日工作 ...