創(chuàng)建屬于自己的Yeoman Generator

背景

最近自己寫了下自己項目的react的腳手架症脂,以前一直采用種子文件進行復制诱篷,最近看到y(tǒng)o细办,想通過命令行自動去生成所需文件當然,對于Yeoman來說是大材小用茴肥,但小小的嘗試也能基本掌握Yeoman的用法吧瞬铸。

步驟

1.下載安裝yo和generator-generator

在做這個步驟之前,必須安裝好node和npm,之后全局安裝yo和generator-generator

$ sudo npm install -g yo
$ sudo npm install -g generator-generator

2.運行g(shù)enerator-generator來創(chuàng)建我們自己需要的generator的基礎(chǔ)框架

$ sudo yo generator

回答下問題,就可以生成你需要的基礎(chǔ)框架,如我這里的鏈接

3.準備好模版,將模版復制到generator/app/templates文件夾下

4.編輯index.js

接下來編輯generator/app/index.js文件夾,通過提出問題,收集答案,來生成我們需要的文件。具體看代碼注釋也切。

'use strict';
const Generator = require('yeoman-generator');
const chalk = require('chalk');
const yosay = require('yosay');
const _ = require('lodash');
const fs = require('fs');

module.exports = class extends Generator {
    prompting() {
        // Have Yeoman greet the user.
        this.log(yosay(
          'Welcome to the kickass ' + chalk.red('generator-test') + ' generator!'
        ));

        const prompts = [
            {
                type: 'list',
                name: 'type',
                message: '請選擇你要創(chuàng)建的類型?',
                choices: ['routes', 'components']
            }, {
                type: 'input',
                name: 'routesNme',
                message: '請輸入你要創(chuàng)建文件的名稱!',
                default: 'Feed'
            }
        ];
        // 提出問題腰湾,收集答案
        return this.prompt(prompts).then(props => {
            // To access props later use this.props.someAnswer;
            this.props = props;
        });
    }

    writing() {
        if (this.props.type === 'routes') {
            // 模版
            let routesTmpl = _.template(this.fs.read(this.templatePath('./Feed/Feed.jsx')));
            this.fs.write(this.destinationPath(`src/routes/${this.props.routesNme}/${this.props.routesNme}.jsx`), routesTmpl({
                routes_name: this.props.routesNme
            }));
            this.fs.copy(
                this.templatePath('./Feed/Feed.less'),
                this.destinationPath(`src/routes/${this.props.routesNme}/${this.props.routesNme}.less`)
            );
        } else if (this.props.type === 'components') {
            let routesTmpl = _.template(this.fs.read(this.templatePath('./Feed/Feed.jsx')));
            this.fs.write(this.destinationPath(`src/components/${this.props.routesNme}.jsx`), routesTmpl({
                routes_name: this.props.routesNme
            }));
            this.fs.copy(
                this.templatePath('./Feed/Feed.less'),
                this.destinationPath(`src/components/${this.props.routesNme}/${this.props.routesNme}.less`)
            );
        }
    }

    install() {
        // this.installDependencies();
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雷恃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子费坊,更是在濱河造成了極大的恐慌倒槐,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件附井,死亡現(xiàn)場離奇詭異讨越,居然都是意外死亡两残,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門把跨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來人弓,“玉大人,你說我怎么就攤上這事节猿∑贝樱” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵滨嘱,是天一觀的道長峰鄙。 經(jīng)常有香客問我,道長太雨,這世上最難降的妖魔是什么吟榴? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮囊扳,結(jié)果婚禮上吩翻,老公的妹妹穿的比我還像新娘。我一直安慰自己锥咸,他們只是感情好狭瞎,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搏予,像睡著了一般熊锭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雪侥,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天碗殷,我揣著相機與錄音,去河邊找鬼速缨。 笑死锌妻,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的旬牲。 我是一名探鬼主播仿粹,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼引谜!你這毒婦竟也來了牍陌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤员咽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贮预,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贝室,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡契讲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了滑频。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捡偏。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖峡迷,靈堂內(nèi)的尸體忽然破棺而出银伟,到底是詐尸還是另有隱情,我是刑警寧澤绘搞,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布彤避,位于F島的核電站,受9級特大地震影響夯辖,放射性物質(zhì)發(fā)生泄漏琉预。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一蒿褂、第九天 我趴在偏房一處隱蔽的房頂上張望圆米。 院中可真熱鬧,春花似錦啄栓、人聲如沸娄帖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽近速。三九已至,卻和暖如春桂肌,著一層夾襖步出監(jiān)牢的瞬間数焊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工崎场, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留佩耳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓谭跨,卻偏偏與公主長得像干厚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子螃宙,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容