85
http://0rz.tw/UYJeS An Intro Of Web Scaffolding Tool Using Yeoman Generator 1 1381星期四

An intro of web scaffolding tool using yeoman generator

  • Upload
    -

  • View
    1.503

  • Download
    0

Embed Size (px)

Citation preview

Page 1: An intro of web scaffolding tool using yeoman generator

http://0rz.tw/UYJeS

An Intro Of Web Scaffolding Tool Using Yeoman Generator

1

13年8月1⽇日星期四

Page 2: An intro of web scaffolding tool using yeoman generator

An Intro Of Web Scaffolding Tool

Using Yeoman Generator

COSCUP 2013

2

13年8月1⽇日星期四

Page 3: An intro of web scaffolding tool using yeoman generator

@kmshenghttp://www.facebook.com/kuanmin.sheng.1

3

13年8月1⽇日星期四

Page 4: An intro of web scaffolding tool using yeoman generator

I AmA Web Developer Who

Loves

4

13年8月1⽇日星期四

Page 5: An intro of web scaffolding tool using yeoman generator

Outline1. Problem2. Demo: Generator3. What is a yeoman generator?4. Demo: Sub-generator5. Why Yeoman Generator?6. Generator API7. Demo of Making a Generator

5

13年8月1⽇日星期四

Page 6: An intro of web scaffolding tool using yeoman generator

Back ThenWe StartedA New Web Project

6

13年8月1⽇日星期四

Page 7: An intro of web scaffolding tool using yeoman generator

7

13年8月1⽇日星期四

Page 8: An intro of web scaffolding tool using yeoman generator

Manually Find Libraries And Add

8

13年8月1⽇日星期四

Page 9: An intro of web scaffolding tool using yeoman generator

Manually Copy And Paste The Same Config Files

9

13年8月1⽇日星期四

Page 10: An intro of web scaffolding tool using yeoman generator

10

13年8月1⽇日星期四

Page 11: An intro of web scaffolding tool using yeoman generator

Here Is A Way

Better Choice

11

13年8月1⽇日星期四

Page 12: An intro of web scaffolding tool using yeoman generator

Yeoman Generator

12

13年8月1⽇日星期四

Page 13: An intro of web scaffolding tool using yeoman generator

Demo #1Scaffold Out A Project

http://youtu.be/0duXfsr6uOc13

13年8月1⽇日星期四

Page 14: An intro of web scaffolding tool using yeoman generator

14

13年8月1⽇日星期四

Page 15: An intro of web scaffolding tool using yeoman generator

What Is A Generator?

15

13年8月1⽇日星期四

Page 16: An intro of web scaffolding tool using yeoman generator

16

13年8月1⽇日星期四

Page 17: An intro of web scaffolding tool using yeoman generator

16

13年8月1⽇日星期四

Page 18: An intro of web scaffolding tool using yeoman generator

16

13年8月1⽇日星期四

Page 19: An intro of web scaffolding tool using yeoman generator

16

13年8月1⽇日星期四

Page 20: An intro of web scaffolding tool using yeoman generator

Generate Templeates & ConfigsBower Install & NPM Install

17

13年8月1⽇日星期四

Page 22: An intro of web scaffolding tool using yeoman generator

19

13年8月1⽇日星期四

Page 23: An intro of web scaffolding tool using yeoman generator

What Is A Sub-generator?

20

13年8月1⽇日星期四

Page 24: An intro of web scaffolding tool using yeoman generator

Generate TempleatesWrite FilesDo Something Based On Option

21

13年8月1⽇日星期四

Page 25: An intro of web scaffolding tool using yeoman generator

Why Use A Generator?

22

13年8月1⽇日星期四

Page 26: An intro of web scaffolding tool using yeoman generator

It Saves Time23

13年8月1⽇日星期四

Page 27: An intro of web scaffolding tool using yeoman generator

Help Team Members Follow Code Convention

24

13年8月1⽇日星期四

Page 28: An intro of web scaffolding tool using yeoman generator

Lots Of Generators Out There

generator-angular, generator-bbb, generator-node ..etc.

25

13年8月1⽇日星期四

Page 29: An intro of web scaffolding tool using yeoman generator

With Strong Team Support

26

13年8月1⽇日星期四

Page 30: An intro of web scaffolding tool using yeoman generator

Paul Irish Addy Osmani Mickael Daniel

Sindre Sorhus Eric Bidelman Frederick Ros

Brian Ford Pascal Hartig Stephon Sawchuk27

13年8月1⽇日星期四

Page 31: An intro of web scaffolding tool using yeoman generator

Paul Irish Addy Osmani Mickael Daniel

Sindre Sorhus Eric Bidelman Frederick Ros

Brian Ford Pascal Hartig Stephon Sawchuk27

13年8月1⽇日星期四

Page 32: An intro of web scaffolding tool using yeoman generator

Maybe You Wanted To Say

28

13年8月1⽇日星期四

Page 33: An intro of web scaffolding tool using yeoman generator

My Workflow Is Not The Same As Yeoman’s

29

13年8月1⽇日星期四

Page 34: An intro of web scaffolding tool using yeoman generator

Why Not To Make Your Own Generator?

30

13年8月1⽇日星期四

Page 35: An intro of web scaffolding tool using yeoman generator

The Real Meaning Of This..

31

13年8月1⽇日星期四

Page 36: An intro of web scaffolding tool using yeoman generator

The Real Meaning Of This..

Is To Share Your Ideas And Best

Bractices With Others31

13年8月1⽇日星期四

Page 37: An intro of web scaffolding tool using yeoman generator

How To Write A Customized Yeoman

Generator?

32

13年8月1⽇日星期四

Page 38: An intro of web scaffolding tool using yeoman generator

Generator-Generator

33

13年8月1⽇日星期四

Page 39: An intro of web scaffolding tool using yeoman generator

Why Generator-Generator?

34

13年8月1⽇日星期四

Page 40: An intro of web scaffolding tool using yeoman generator

35

13年8月1⽇日星期四

Page 41: An intro of web scaffolding tool using yeoman generator

Epic Fai

l

35

13年8月1⽇日星期四

Page 42: An intro of web scaffolding tool using yeoman generator

36

13年8月1⽇日星期四

Page 43: An intro of web scaffolding tool using yeoman generator

37

13年8月1⽇日星期四

Page 44: An intro of web scaffolding tool using yeoman generator

Setup

38

13年8月1⽇日星期四

Page 45: An intro of web scaffolding tool using yeoman generator

npm install -g yo generator-generator

39

13年8月1⽇日星期四

Page 46: An intro of web scaffolding tool using yeoman generator

# in your generator repo

yo generator

40

13年8月1⽇日星期四

Page 47: An intro of web scaffolding tool using yeoman generator

provide your github name

provide your generator name

41

13年8月1⽇日星期四

Page 48: An intro of web scaffolding tool using yeoman generator

├──  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⽇日星期四

Page 49: An intro of web scaffolding tool using yeoman generator

Done?43

13年8月1⽇日星期四

Page 50: An intro of web scaffolding tool using yeoman generator

Of Course Not44

13年8月1⽇日星期四

Page 51: An intro of web scaffolding tool using yeoman generator

npm link

45

13年8月1⽇日星期四

Page 53: An intro of web scaffolding tool using yeoman generator

How To Create A Sub-Generator?

47

13年8月1⽇日星期四

Page 54: An intro of web scaffolding tool using yeoman generator

# in your generator repoyo generator:subgenerator name

48

13年8月1⽇日星期四

Page 55: An intro of web scaffolding tool using yeoman generator

   name      ├──  index.js      ├──  templates/somefile.js    

49

13年8月1⽇日星期四

Page 56: An intro of web scaffolding tool using yeoman generator

   name      ├──  index.js      ├──  templates/somefile.js     └──  USAGE

49

13年8月1⽇日星期四

Page 57: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

50

13年8月1⽇日星期四

Page 58: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

50

13年8月1⽇日星期四

Page 59: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

Generator Name

50

13年8月1⽇日星期四

Page 60: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

Generator Name Sub-gernerator Name

50

13年8月1⽇日星期四

Page 61: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

Generator Name Sub-gernerator Name

Base#argument name

50

13年8月1⽇日星期四

Page 62: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

Generator Name Sub-gernerator Name

Base#argumentBase#argument name

50

13年8月1⽇日星期四

Page 63: An intro of web scaffolding tool using yeoman generator

Yo Pix:Controller arg1 arg2 --json

Generator Name Sub-gernerator Name

Base#argumentBase#argument nameBase#option

50

13年8月1⽇日星期四

Page 64: An intro of web scaffolding tool using yeoman generator

Prompt#prompt

51

13年8月1⽇日星期四

Page 65: An intro of web scaffolding tool using yeoman generator

52

13年8月1⽇日星期四

Page 66: An intro of web scaffolding tool using yeoman generator

Log

53

13年8月1⽇日星期四

Page 67: An intro of web scaffolding tool using yeoman generator

this.log.skip(‘msg’).create(‘msg’).invoke(‘msg’).conflict(‘msg’).identical(‘msg’).info(‘msg’).ok(‘ok’).error(‘error’);

node.js

54

13年8月1⽇日星期四

Page 68: An intro of web scaffolding tool using yeoman generator

skip msg force msg create msg invoke msg conflict msgidentical msg info msg

✔ ok✗ error

55

13年8月1⽇日星期四

Page 69: An intro of web scaffolding tool using yeoman generator

actions#checkForCollision

56

13年8月1⽇日星期四

Page 70: An intro of web scaffolding tool using yeoman generator

actions#copy

generator

my repo57

13年8月1⽇日星期四

Page 71: An intro of web scaffolding tool using yeoman generator

actions#copy

generator

my repo57

13年8月1⽇日星期四

Page 72: An intro of web scaffolding tool using yeoman generator

actions#copy

generator

my repo57

13年8月1⽇日星期四

Page 73: An intro of web scaffolding tool using yeoman generator

actions#copy

generator

my repo57

13年8月1⽇日星期四

Page 74: An intro of web scaffolding tool using yeoman generator

this.copy( ‘main.src.scss’, ‘main.src.scss’);

node.js

58

13年8月1⽇日星期四

Page 75: An intro of web scaffolding tool using yeoman generator

actions#template

59

13年8月1⽇日星期四

Page 76: An intro of web scaffolding tool using yeoman generator

this.template( ‘_bower.json’, ‘bower.json’, { appName: this.appName }

);

node.js

60

13年8月1⽇日星期四

Page 77: An intro of web scaffolding tool using yeoman generator

angularUtils#rewriteFile

61

13年8月1⽇日星期四

Page 78: An intro of web scaffolding tool using yeoman generator

class HelloController extends Pix_Controller{ public function indexAction() { }

public function worldAction() { } // endbuild}

PHP

62

13年8月1⽇日星期四

Page 80: An intro of web scaffolding tool using yeoman generator

64

13年8月1⽇日星期四

Page 81: An intro of web scaffolding tool using yeoman generator

Summary

What Is A Generator?Why Use A Generator?

How To Make A Generator?

65

13年8月1⽇日星期四

Page 82: An intro of web scaffolding tool using yeoman generator

http://0rz.tw/vzQN0

Source Code

66

13年8月1⽇日星期四

Page 84: An intro of web scaffolding tool using yeoman generator

Q & A

68

13年8月1⽇日星期四

Page 85: An intro of web scaffolding tool using yeoman generator

Thanks

69

13年8月1⽇日星期四