An intro of web scaffolding tool using yeoman generator

貫銘 盛
貫銘 盛研發工程師 at none
http://0rz.tw/UYJeS
An Intro Of Web Scaffolding Tool Using
Yeoman Generator
1
13年8月1⽇日星期四
An Intro Of Web
Scaffolding Tool
Using
Yeoman Generator
COSCUP 2013
2
13年8月1⽇日星期四
@kmsheng
http://www.facebook.com/kuanmin.sheng.1
3
13年8月1⽇日星期四
I Am
A Web Developer Who
Loves
4
13年8月1⽇日星期四
Outline
1. Problem
2. Demo: Generator
3. What is a yeoman generator?
4. Demo: Sub-generator
5. Why Yeoman Generator?
6. Generator API
7. Demo of Making a Generator
5
13年8月1⽇日星期四
Back Then
We Started
A New Web Project
6
13年8月1⽇日星期四
7
13年8月1⽇日星期四
Manually Find
Libraries And Add
8
13年8月1⽇日星期四
Manually Copy And
Paste The Same
Config Files
9
13年8月1⽇日星期四
10
13年8月1⽇日星期四
Here Is A Way
Better Choice
11
13年8月1⽇日星期四
Yeoman Generator
12
13年8月1⽇日星期四
Demo #1
Scaffold Out A Project
http://youtu.be/0duXfsr6uOc
13
13年8月1⽇日星期四
14
13年8月1⽇日星期四
What Is A Generator?
15
13年8月1⽇日星期四
16
13年8月1⽇日星期四
16
13年8月1⽇日星期四
16
13年8月1⽇日星期四
16
13年8月1⽇日星期四
Generate Templeates & Configs
Bower Install & NPM Install
17
13年8月1⽇日星期四
Demo #2
Creating Routes Using
Sub-generator
http://youtu.be/jvIOuALlnjM
18
13年8月1⽇日星期四
19
13年8月1⽇日星期四
What Is A
Sub-generator?
20
13年8月1⽇日星期四
Generate Templeates
Write Files
Do Something Based On Option
21
13年8月1⽇日星期四
Why Use A Generator?
22
13年8月1⽇日星期四
It Saves Time
23
13年8月1⽇日星期四
Help Team Members
Follow Code Convention
24
13年8月1⽇日星期四
Lots Of Generators
Out There
generator-angular, generator-
bbb, generator-node ..etc.
25
13年8月1⽇日星期四
With Strong Team
Support
26
13年8月1⽇日星期四
Paul Irish Addy Osmani Mickael Daniel
Sindre Sorhus Eric Bidelman Frederick Ros
Brian Ford Pascal Hartig Stephon Sawchuk27
13年8月1⽇日星期四
Paul Irish Addy Osmani Mickael Daniel
Sindre Sorhus Eric Bidelman Frederick Ros
Brian Ford Pascal Hartig Stephon Sawchuk27
13年8月1⽇日星期四
Maybe You Wanted
To Say
28
13年8月1⽇日星期四
My Workflow Is Not
The Same As Yeoman’s
29
13年8月1⽇日星期四
Why Not To Make Your
Own Generator?
30
13年8月1⽇日星期四
The Real Meaning Of
This..
31
13年8月1⽇日星期四
The Real Meaning Of
This..
Is To Share Your
Ideas And Best
Bractices With Others
31
13年8月1⽇日星期四
How To Write A
Customized Yeoman
Generator?
32
13年8月1⽇日星期四
Generator-Generator
33
13年8月1⽇日星期四
Why
Generator-Generator?
34
13年8月1⽇日星期四
35
13年8月1⽇日星期四
Epic Fail
35
13年8月1⽇日星期四
36
13年8月1⽇日星期四
37
13年8月1⽇日星期四
Setup
38
13年8月1⽇日星期四
npm install -g yo
generator-generator
39
13年8月1⽇日星期四
# in your generator repo
yo generator
40
13年8月1⽇日星期四
provide your github name
provide your generator name
41
13年8月1⽇日星期四
├──	
  app
│	
  	
  	
  ├──	
  index.js
│	
  	
  	
  └──	
  templates
│	
  	
  	
  	
  	
  	
  	
  ├──	
  _bower.json
│	
  	
  	
  	
  	
  	
  	
  ├──	
  _package.json
│	
  	
  	
  	
  	
  	
  	
  ├──	
  editorconfig
│	
  	
  	
  	
  	
  	
  	
  ├──	
  jshintrc
│	
  	
  	
  	
  	
  	
  	
  └──	
  travis.yml
├──	
  test
│	
  	
  	
  ├──	
  test-­‐creation.js
│	
  	
  	
  └──	
  test-­‐load.js
├──	
  .editorconfig
├──	
  .gitattributes
├──	
  .gitignore
├──	
  .jshintrc
├──	
  .travis.yml
├──	
  LICENSE
├──	
  package.json
└──	
  README.md
42
13年8月1⽇日星期四
Done?
43
13年8月1⽇日星期四
Of Course Not
44
13年8月1⽇日星期四
npm link
45
13年8月1⽇日星期四
Generator API
https://github.com/
yeoman/generator/wiki
46
13年8月1⽇日星期四
How To Create A
Sub-Generator?
47
13年8月1⽇日星期四
# in your generator repo
yo generator:subgenerator name
48
13年8月1⽇日星期四
 	
  name
	
  	
  	
  ├──	
  index.js
	
  	
  	
  ├──	
  templates/somefile.js
	
  	
  
49
13年8月1⽇日星期四
 	
  name
	
  	
  	
  ├──	
  index.js
	
  	
  	
  ├──	
  templates/somefile.js
	
  	
   └──	
  USAGE
49
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
50
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
50
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
Generator Name
50
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
Generator Name Sub-gernerator Name
50
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
Generator Name Sub-gernerator Name
Base#argument name
50
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
Generator Name Sub-gernerator Name
Base#argument
Base#argument name
50
13年8月1⽇日星期四
Yo Pix:Controller
arg1 arg2 --json
Generator Name Sub-gernerator Name
Base#argument
Base#argument name
Base#option
50
13年8月1⽇日星期四
Prompt#prompt
51
13年8月1⽇日星期四
52
13年8月1⽇日星期四
Log
53
13年8月1⽇日星期四
this.log
.skip(‘msg’)
.create(‘msg’)
.invoke(‘msg’)
.conflict(‘msg’)
.identical(‘msg’)
.info(‘msg’)
.ok(‘ok’)
.error(‘error’);
node.js
54
13年8月1⽇日星期四
skip msg
force msg
create msg
invoke msg
conflict msg
identical msg
info msg
✔ ok
✗ error
55
13年8月1⽇日星期四
actions#checkForCollision
56
13年8月1⽇日星期四
actions#copy
generator
my repo
57
13年8月1⽇日星期四
actions#copy
generator
my repo
57
13年8月1⽇日星期四
actions#copy
generator
my repo
57
13年8月1⽇日星期四
actions#copy
generator
my repo
57
13年8月1⽇日星期四
this.copy(
‘main.src.scss’,
‘main.src.scss’
);
node.js
58
13年8月1⽇日星期四
actions#template
59
13年8月1⽇日星期四
this.template(
‘_bower.json’,
‘bower.json’,
{
appName: this.appName
}
);
node.js
60
13年8月1⽇日星期四
angularUtils#rewriteFile
61
13年8月1⽇日星期四
class HelloController extends Pix_Controller
{
public function indexAction()
{
}
public function worldAction()
{
}
// endbuild
}
PHP
62
13年8月1⽇日星期四
Demo #3
Writing A Generator
http://youtu.be/8ysBiN0Zw-463
13年8月1⽇日星期四
64
13年8月1⽇日星期四
Summary
What Is A Generator?
Why Use A Generator?
How To Make A Generator?
65
13年8月1⽇日星期四
http://0rz.tw/vzQN0
Source Code
66
13年8月1⽇日星期四
http://0rz.tw/DQ2Di
Yeoman.io
67
13年8月1⽇日星期四
Q & A
68
13年8月1⽇日星期四
Thanks
69
13年8月1⽇日星期四
1 of 85

Recommended

Code review on github training ( beginner ) by
Code review on github training ( beginner )Code review on github training ( beginner )
Code review on github training ( beginner )JS Lee
3.9K views20 slides
Code review on github training ( intermediate ) by
Code review on github training ( intermediate )Code review on github training ( intermediate )
Code review on github training ( intermediate )JS Lee
3.9K views24 slides
照騙小幫手 fakpy@HackNCUU by
照騙小幫手 fakpy@HackNCUU照騙小幫手 fakpy@HackNCUU
照騙小幫手 fakpy@HackNCUUYukai Huang
474 views20 slides
電子內容管理 使用Git 與 github 2 by
電子內容管理   使用Git 與 github 2電子內容管理   使用Git 與 github 2
電子內容管理 使用Git 與 github 2Alan Tsai
2.8K views73 slides
Web basic develop mode - Node.js by
Web basic develop mode - Node.jsWeb basic develop mode - Node.js
Web basic develop mode - Node.jsCaesar Chi
604 views37 slides
Yeoman - A Node.js cli tool for web developers by
Yeoman - A Node.js cli tool for web developersYeoman - A Node.js cli tool for web developers
Yeoman - A Node.js cli tool for web developersCaesar Chi
2K views43 slides

More Related Content

Similar to An intro of web scaffolding tool using yeoman generator

Node.js X Windows Azure by
Node.js X Windows AzureNode.js X Windows Azure
Node.js X Windows AzureCaesar Chi
2.6K views44 slides
Cocoapods by
CocoapodsCocoapods
Cocoapods景隆 張
940 views21 slides
Django deploy by
Django deployDjango deploy
Django deployAndy Dai
1.5K views45 slides
2013 輔大資工 暑期宅學營 PhoneGap 跨平台任我玩,HTML5 無痛開發 App by
2013 輔大資工 暑期宅學營  PhoneGap  跨平台任我玩,HTML5 無痛開發 App2013 輔大資工 暑期宅學營  PhoneGap  跨平台任我玩,HTML5 無痛開發 App
2013 輔大資工 暑期宅學營 PhoneGap 跨平台任我玩,HTML5 無痛開發 AppHuang-I Yang
959 views33 slides
Nimbus by
NimbusNimbus
NimbusMichael Pan
654 views17 slides
Objc under the_hood_2013 by
Objc under the_hood_2013Objc under the_hood_2013
Objc under the_hood_2013Michael Pan
1.7K views70 slides

Similar to An intro of web scaffolding tool using yeoman generator(16)

Node.js X Windows Azure by Caesar Chi
Node.js X Windows AzureNode.js X Windows Azure
Node.js X Windows Azure
Caesar Chi2.6K views
Django deploy by Andy Dai
Django deployDjango deploy
Django deploy
Andy Dai1.5K views
2013 輔大資工 暑期宅學營 PhoneGap 跨平台任我玩,HTML5 無痛開發 App by Huang-I Yang
2013 輔大資工 暑期宅學營  PhoneGap  跨平台任我玩,HTML5 無痛開發 App2013 輔大資工 暑期宅學營  PhoneGap  跨平台任我玩,HTML5 無痛開發 App
2013 輔大資工 暑期宅學營 PhoneGap 跨平台任我玩,HTML5 無痛開發 App
Huang-I Yang959 views
Objc under the_hood_2013 by Michael Pan
Objc under the_hood_2013Objc under the_hood_2013
Objc under the_hood_2013
Michael Pan1.7K views
Introduction to ZeroMQ by YiHung Lee
Introduction to ZeroMQIntroduction to ZeroMQ
Introduction to ZeroMQ
YiHung Lee2.4K views
Node getting start by tbmallf2e
Node getting startNode getting start
Node getting start
tbmallf2e2.6K views
快快樂樂學 Scrapy by recast203
快快樂樂學 Scrapy快快樂樂學 Scrapy
快快樂樂學 Scrapy
recast2031.6K views
App企劃設計 1 by Leader Chen
App企劃設計 1App企劃設計 1
App企劃設計 1
Leader Chen3.5K views
基于YUI3的组件开发 by jay li
基于YUI3的组件开发基于YUI3的组件开发
基于YUI3的组件开发
jay li1.4K views
初探 Elastic Observability 的實踐方法 by Joe Wu
初探 Elastic Observability 的實踐方法初探 Elastic Observability 的實踐方法
初探 Elastic Observability 的實踐方法
Joe Wu1.6K views
用Octopus deploy做自動部署 - 快速上手 by Alan Tsai
用Octopus deploy做自動部署 - 快速上手用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
Alan Tsai2.4K views
【第一回 ゼロからはじめる Oracle Solaris 11】03_知るべきは pkg(1) コマンドのみ! ~Image Packaging Syst... by SolarisJP
【第一回 ゼロからはじめる Oracle Solaris 11】03_知るべきは pkg(1) コマンドのみ! ~Image Packaging Syst...【第一回 ゼロからはじめる Oracle Solaris 11】03_知るべきは pkg(1) コマンドのみ! ~Image Packaging Syst...
【第一回 ゼロからはじめる Oracle Solaris 11】03_知るべきは pkg(1) コマンドのみ! ~Image Packaging Syst...
SolarisJP1.5K views

An intro of web scaffolding tool using yeoman generator