SlideShare a Scribd company logo
1 of 51
Download to read offline
Schematics 實戰
• 「Angular 深入淺出三⼗十天」系列列⽂文作者
• Perkd Taiwan
• 「⾼高效 Coding 術:Angular Schematics
實戰三⼗十天」系列列⽂文作者
陳志龍(Leo Chen)
世界上最寶貴的資源...
時間
•Schematics?
•Schematics 的應⽤用
•實作第⼀一個 Schematic
•為 Schematic 撰寫測試
•TypeScript Compiler API
⼤大綱
Schematics?
圖片來來源:https://medium.com/rocket-fuel/angular-schematics-simple-schematic-76be2aa72850
程式碼產⽣生器
Ember CLI
Angular CLI
Schematics
Angular CLI v1.4
Schematics 的應⽤用
ng new
ng add ng update
ng generate
ng new
ng add ng update
ng generate
ng new
ng add ng update
ng generate
ng new
ng add ng update
ng generate
ng new
ng add ng update
ng generate
實作第⼀一個 Schematic
npm install -g @angular-devkit/schematics-cli
schematics blank —name=hello-world
npm install -g @angular-devkit/schematics-cli
src/collection.json
npm run build
npm run build
schematics .:hello-world —name=leo
npm run build
schematics .:hello-world —name=leo
CREATE /hello-world.html
schematics .:hello-world —name=leo —dry-run=false
為 Schematic 撰寫測試
ERROR!!
TypeScript Compiler API
42 + 50
[
“a”,
“b”
]
⾼高效 Coding 術:Angular Schematics 實戰三⼗十天
• 官⽅方⽂文件(英⽂文版)
• 官⽅方⽂文件(中⽂文版)
• Schematics — An Introduction
• [Angular] Angular Schematics
參參考資料
• 改善 Angular 開發流程:你所不知道的 Schematics 程式
碼產⽣生器
• [Angular] Schematics 內檔案系統基本操作
• Schematics for Libraries
• Total Guide To Custom Angular Schematics
參參考資料
• 玩轉 Schematics - Modern Web 2018
• [TypeScript] Compiler API 第⼀一次接觸
• 使⽤用 Schematics ⾃自定义 ng generate
• 深入Angular:使⽤用Schematics编写Angular代码⾃自动⽣生成器
參參考資料
• 浅谈Angular Cli Schematics
• Angular Schematics: Simple Schematic
• Use Angular Schematics to Simplify Your Life
• Angular Schematics Tutorial
參參考資料

More Related Content

What's hot

Angular 深入淺出測試篇:E2E測試入門
Angular 深入淺出測試篇:E2E測試入門Angular 深入淺出測試篇:E2E測試入門
Angular 深入淺出測試篇:E2E測試入門志龍 陳
 
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門志龍 陳
 
Angular 深入淺出測試篇:整合測試入門
Angular 深入淺出測試篇:整合測試入門Angular 深入淺出測試篇:整合測試入門
Angular 深入淺出測試篇:整合測試入門志龍 陳
 
Angular 2 表單的處理與驗證
Angular 2 表單的處理與驗證Angular 2 表單的處理與驗證
Angular 2 表單的處理與驗證Jeff Wu
 
Angular 2 Taiwan 小聚 Forms 介紹
Angular 2 Taiwan 小聚 Forms 介紹Angular 2 Taiwan 小聚 Forms 介紹
Angular 2 Taiwan 小聚 Forms 介紹Jeff Wu
 
ModernWeb 2017 angular component
ModernWeb 2017 angular componentModernWeb 2017 angular component
ModernWeb 2017 angular componentChieh Kai Yang
 
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧升煌 黃
 
美团点评技术沙龙06 - 提高移动端兼容性测试效率工具
美团点评技术沙龙06 - 提高移动端兼容性测试效率工具美团点评技术沙龙06 - 提高移动端兼容性测试效率工具
美团点评技术沙龙06 - 提高移动端兼容性测试效率工具美团点评技术团队
 
Modern web 2020 - 使用 Nx 管理超大型前後端專案
Modern web 2020 - 使用 Nx 管理超大型前後端專案Modern web 2020 - 使用 Nx 管理超大型前後端專案
Modern web 2020 - 使用 Nx 管理超大型前後端專案升煌 黃
 
Angular Taiwan 2019 - Schematics Workshop
Angular Taiwan 2019 - Schematics WorkshopAngular Taiwan 2019 - Schematics Workshop
Angular Taiwan 2019 - Schematics Workshop升煌 黃
 
楽しく学ぶ?API
楽しく学ぶ?API楽しく学ぶ?API
楽しく学ぶ?APItreby
 
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Will Huang
 
深入研究 Angular - phoebe pan
深入研究 Angular  - phoebe pan深入研究 Angular  - phoebe pan
深入研究 Angular - phoebe panPhoebe Pan
 
试玩前端测试的前因后果
试玩前端测试的前因后果试玩前端测试的前因后果
试玩前端测试的前因后果hahaxiaolaohu
 
试玩前端测试的前因后果
试玩前端测试的前因后果试玩前端测试的前因后果
试玩前端测试的前因后果Zhicheng Wang
 
美团点评技术沙龙011 - 客户端用户体验数据量化
美团点评技术沙龙011 - 客户端用户体验数据量化美团点评技术沙龙011 - 客户端用户体验数据量化
美团点评技术沙龙011 - 客户端用户体验数据量化美团点评技术团队
 
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務Alan Tsai
 
Beta testing with CI
Beta testing with CIBeta testing with CI
Beta testing with CILiyao Chen
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
Better use angular
Better use angularBetter use angular
Better use angularYanru Li
 

What's hot (20)

Angular 深入淺出測試篇:E2E測試入門
Angular 深入淺出測試篇:E2E測試入門Angular 深入淺出測試篇:E2E測試入門
Angular 深入淺出測試篇:E2E測試入門
 
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門
 
Angular 深入淺出測試篇:整合測試入門
Angular 深入淺出測試篇:整合測試入門Angular 深入淺出測試篇:整合測試入門
Angular 深入淺出測試篇:整合測試入門
 
Angular 2 表單的處理與驗證
Angular 2 表單的處理與驗證Angular 2 表單的處理與驗證
Angular 2 表單的處理與驗證
 
Angular 2 Taiwan 小聚 Forms 介紹
Angular 2 Taiwan 小聚 Forms 介紹Angular 2 Taiwan 小聚 Forms 介紹
Angular 2 Taiwan 小聚 Forms 介紹
 
ModernWeb 2017 angular component
ModernWeb 2017 angular componentModernWeb 2017 angular component
ModernWeb 2017 angular component
 
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
 
美团点评技术沙龙06 - 提高移动端兼容性测试效率工具
美团点评技术沙龙06 - 提高移动端兼容性测试效率工具美团点评技术沙龙06 - 提高移动端兼容性测试效率工具
美团点评技术沙龙06 - 提高移动端兼容性测试效率工具
 
Modern web 2020 - 使用 Nx 管理超大型前後端專案
Modern web 2020 - 使用 Nx 管理超大型前後端專案Modern web 2020 - 使用 Nx 管理超大型前後端專案
Modern web 2020 - 使用 Nx 管理超大型前後端專案
 
Angular Taiwan 2019 - Schematics Workshop
Angular Taiwan 2019 - Schematics WorkshopAngular Taiwan 2019 - Schematics Workshop
Angular Taiwan 2019 - Schematics Workshop
 
楽しく学ぶ?API
楽しく学ぶ?API楽しく学ぶ?API
楽しく学ぶ?API
 
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017
 
深入研究 Angular - phoebe pan
深入研究 Angular  - phoebe pan深入研究 Angular  - phoebe pan
深入研究 Angular - phoebe pan
 
试玩前端测试的前因后果
试玩前端测试的前因后果试玩前端测试的前因后果
试玩前端测试的前因后果
 
试玩前端测试的前因后果
试玩前端测试的前因后果试玩前端测试的前因后果
试玩前端测试的前因后果
 
美团点评技术沙龙011 - 客户端用户体验数据量化
美团点评技术沙龙011 - 客户端用户体验数据量化美团点评技术沙龙011 - 客户端用户体验数据量化
美团点评技术沙龙011 - 客户端用户体验数据量化
 
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
 
Beta testing with CI
Beta testing with CIBeta testing with CI
Beta testing with CI
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
Better use angular
Better use angularBetter use angular
Better use angular
 

Similar to Schematics 實戰

Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Will Huang
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Will Huang
 
Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4Kyle Shen
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例Will Huang
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)Will Huang
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 TaiwanAlan Tsai
 
aifanfan skywalking in action
aifanfan skywalking in actionaifanfan skywalking in action
aifanfan skywalking in actionEvanLiu39
 
Angular 原始碼探索之Signal 篇
Angular 原始碼探索之Signal 篇Angular 原始碼探索之Signal 篇
Angular 原始碼探索之Signal 篇志龍 陳
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Gelis Wu
 
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)Will Huang
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)Will Huang
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架Will Huang
 
KubeVela:标准化的云原生平台构建引擎
KubeVela:标准化的云原生平台构建引擎KubeVela:标准化的云原生平台构建引擎
KubeVela:标准化的云原生平台构建引擎suncbing1
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構Mu Chun Wang
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索Will Huang
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨Wen-Tien Chang
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发mysqlops
 
關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版Kirk Chen
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17twMVC
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node jsXuefeng Zhang
 

Similar to Schematics 實戰 (20)

Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
 
Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
 
aifanfan skywalking in action
aifanfan skywalking in actionaifanfan skywalking in action
aifanfan skywalking in action
 
Angular 原始碼探索之Signal 篇
Angular 原始碼探索之Signal 篇Angular 原始碼探索之Signal 篇
Angular 原始碼探索之Signal 篇
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
 
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
 
KubeVela:标准化的云原生平台构建引擎
KubeVela:标准化的云原生平台构建引擎KubeVela:标准化的云原生平台构建引擎
KubeVela:标准化的云原生平台构建引擎
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 
關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 

More from 志龍 陳

你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發志龍 陳
 
這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧志龍 陳
 
工程師必須具備的軟實力-產品思維
工程師必須具備的軟實力-產品思維工程師必須具備的軟實力-產品思維
工程師必須具備的軟實力-產品思維志龍 陳
 
工程師必須具備的軟實力-不管理時間的下場是被時間追殺
工程師必須具備的軟實力-不管理時間的下場是被時間追殺工程師必須具備的軟實力-不管理時間的下場是被時間追殺
工程師必須具備的軟實力-不管理時間的下場是被時間追殺志龍 陳
 
工程師必須具備的軟實力-其實溝通很簡單
工程師必須具備的軟實力-其實溝通很簡單工程師必須具備的軟實力-其實溝通很簡單
工程師必須具備的軟實力-其實溝通很簡單志龍 陳
 
工程師必備的軟實力之溝通其實很簡單
工程師必備的軟實力之溝通其實很簡單工程師必備的軟實力之溝通其實很簡單
工程師必備的軟實力之溝通其實很簡單志龍 陳
 
Angular 深入淺出表單篇:新手入門(三)
Angular 深入淺出表單篇:新手入門(三)Angular 深入淺出表單篇:新手入門(三)
Angular 深入淺出表單篇:新手入門(三)志龍 陳
 
Angular 深入淺出表單篇:新手入門(二)
Angular 深入淺出表單篇:新手入門(二)Angular 深入淺出表單篇:新手入門(二)
Angular 深入淺出表單篇:新手入門(二)志龍 陳
 
Angular 深入淺出表單篇:新手入門(一)
Angular 深入淺出表單篇:新手入門(一)Angular 深入淺出表單篇:新手入門(一)
Angular 深入淺出表單篇:新手入門(一)志龍 陳
 

More from 志龍 陳 (9)

你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發
 
這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧
 
工程師必須具備的軟實力-產品思維
工程師必須具備的軟實力-產品思維工程師必須具備的軟實力-產品思維
工程師必須具備的軟實力-產品思維
 
工程師必須具備的軟實力-不管理時間的下場是被時間追殺
工程師必須具備的軟實力-不管理時間的下場是被時間追殺工程師必須具備的軟實力-不管理時間的下場是被時間追殺
工程師必須具備的軟實力-不管理時間的下場是被時間追殺
 
工程師必須具備的軟實力-其實溝通很簡單
工程師必須具備的軟實力-其實溝通很簡單工程師必須具備的軟實力-其實溝通很簡單
工程師必須具備的軟實力-其實溝通很簡單
 
工程師必備的軟實力之溝通其實很簡單
工程師必備的軟實力之溝通其實很簡單工程師必備的軟實力之溝通其實很簡單
工程師必備的軟實力之溝通其實很簡單
 
Angular 深入淺出表單篇:新手入門(三)
Angular 深入淺出表單篇:新手入門(三)Angular 深入淺出表單篇:新手入門(三)
Angular 深入淺出表單篇:新手入門(三)
 
Angular 深入淺出表單篇:新手入門(二)
Angular 深入淺出表單篇:新手入門(二)Angular 深入淺出表單篇:新手入門(二)
Angular 深入淺出表單篇:新手入門(二)
 
Angular 深入淺出表單篇:新手入門(一)
Angular 深入淺出表單篇:新手入門(一)Angular 深入淺出表單篇:新手入門(一)
Angular 深入淺出表單篇:新手入門(一)
 

Schematics 實戰