Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Beyond ng new
Search
Ciro Nunes
June 22, 2018
Programming
2
210
Beyond ng new
Use lesser known features of the Angular CLI to unlock the ultimate productivity
Ciro Nunes
June 22, 2018
Tweet
Share
More Decks by Ciro Nunes
See All by Ciro Nunes
Rust Front-end with Yew
cironunes
0
58
Type safe CSS with Reason
cironunes
0
130
What I've learned building automated docs for Ansarada's design system
cironunes
0
77
Animate your Angular apps
cironunes
0
430
Sweet Angular, good forms never felt so good
cironunes
0
85
Sweet Angular, good forms never felt so good
cironunes
0
300
Progressive Angular apps
cironunes
3
910
Angular: Um framework. Mobile & desktop.
cironunes
1
590
Firebase & Angular
cironunes
0
290
Other Decks in Programming
See All in Programming
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
660
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
Vibe codingでおすすめの言語と開発手法
uyuki234
0
170
ゆくKotlin くるRust
exoego
1
200
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
150
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
1.9k
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
130
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
6
2.4k
Go コードベースの構成と AI コンテキスト定義
andpad
0
160
TestingOsaka6_Ozono
o3
0
270
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
150
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.1k
Why Our Code Smells
bkeepers
PRO
340
58k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Believing is Seeing
oripsolob
1
29
Mobile First: as difficult as doing things right
swwweet
225
10k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Automating Front-end Workflow
addyosmani
1371
200k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
220
Transcript
beyond ngnew Go http://cnun.es/beyond-ngnew
Ciro Nunes Brought to you by @cironunesdev cironunes.com
Ciro Nunes Brought to you by @cironunesdev cironunes.com
Ciro Nunes Brought to you by @cironunesdev cironunes.com
None
The CLI
I ❤ CLI
Agenda Basics 1 Unlock the ultimate productivity 2 Tips &
tricks 3
Agenda Basics 1 Unlock the ultimate productivity 2 Tips &
tricks 3
" Start # projects
ng new gdg-devfest --routing --prefix gdg Start new projects Include
routing module and prefix all components with gdg-
--dry-run (-d) Pro tip! Do not modify the file system
$ Add capabilities
ng add @angular/material Add libraries
ng add @angular/material Add libraries Install the official material packages
and schematics to generate material components
ng add @angular/material Add libraries Install the official material packages
and schematics to generate material components ng g @angular/material:dashboard --name my-dash
ng add @angular/material Add libraries Install the official material packages
and schematics to generate material components ng g @angular/material:dashboard --name my-dash Generate the dashboard component using @angular/material schematics
ng add @angular/pwa Add PWA features
ng add @angular/pwa Add PWA features Get 100/100 PWA score
in lighthouse
% Keep your & dependencies ☝ up-to-date
ng update --all --next -d Update packages (
ng update --all --next -d Update packages ( All packages
to latest versions including betas and RCS
) Scaffold anything
ng generate (g) guard (g) appShell component (c) directive (d)
service (c) … Scaffold anything! )
ng generate universal --client-project ang-conf Server-side rendering
ng generate universal --client-project ang-conf Scaffold server-side Angular with Universal
Server-side rendering
ng generate library tooltip Scaffold libraries &
ng generate library tooltip Scaffold libraries & Scaffold libraries using
ng-packgr
Create libraries for your components Pro tip! It’s a good
way to check if their APIs are well designed
ng xi18n i18n
ng xi18n i18n Extract text marked with the i18n pipe
into a translation file
ng eject Gain more control
ng eject Gain more control When you need more customisation
or just want to learn more
OnCe you eject you can ’ t go back!
Memorise the shortcuts, type less! Usually you just have to
type the first letter of a command
ng n new ng g generate ng s serve Shortcuts
Ask for help
ng help or just ng Need help?
None
ng g universal --help Need help per command?
ng g universal --help Need help per command? Help info
for the universal schematic
Learn from the docs!
ng doc term in the API -s everywhere Search
None
Play around, have fun
Agenda Basics 1 Unlock the ultimate productivity 2 Tips &
tricks 3
Share Learn Create
Schematics
Apply transformations to your project
Just like the CLI does
None
Rules
Rules Trees
Rules Takes a tree and returns a tree Trees
Rules Takes a tree and returns a tree Trees Existing
files + stage area
Modifies trees instead of the filesystem directly
Dry runs Reusability Extensibility That allows for
Creating schematics
npm i -g @angular-devkit/schematics-cli Install it
schematics blank --name=my-component Generate a blank schematic
Rules
z import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; export
function myComponent(options: any): Rule { return (tree: Tree, _context: SchematicContext) => { return tree; }; }
z import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; export
function myComponent(options: any): Rule { return (tree: Tree, _context: SchematicContext) => { return tree; }; }
z import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; export
function myComponent(options: any): Rule { return (tree: Tree, _context: SchematicContext) => { tree.create(options.name || 'hello', 'world'); return tree; }; } Create and modify files
z import { Rule, SchematicContext, Tree, chain, externalSchematic } from
'@angular-devkit/schematics'; export function myComponent(options: any): Rule { return (tree: Tree, _context: SchematicContext) => { tree.create(options.name || 'hello', 'world'); return chain(tree, externalSchematic(...)); }; } Chain external schematics
Collections
z { "$schema": “.../@angular-devkit/schematics/ collection-schema.json", "schematics": { "my-component": { "description":
"A blank schematic.", "factory": "./my-component/index#myComponent" } } } Schematics collection collection.json
npm run build Build and test it schematics .:my-component --name=test
--dry-run=false
node --inspect-brk $(which schematics) .:myComponent --name=test Debug it
ng new myapp Use it with the CLI npm link
$PATH_TO_my-component ng g my-component:my-component someName
* Remember to publish on NPM ⚓ when you’re happy
with the results!
Learn more, for free! https://leanpub.com/angular-schematics/read_full
Agenda Basics 1 Unlock the ultimate productivity 2 Tips &
tricks 3
Now the , of the -
None
Monorepo structure enterprise ready! .
None
None
/ Practice the commands, use dry runs 0 Use, create
and share schematics 1 Use the help command and the docs Takeaways 2 Embrace the ecosystem
Stay curious, explore the opportunities, use your creativity!
Thank you! I hope you enjoyed it @cironunesdev