命令行利用模板創(chuàng)建文件

背景

在組件庫的開發(fā)中聚谁,每個組件目錄下的文件結(jié)構(gòu),以及文件內(nèi)容是大體上相同的,因此利用命令的方式創(chuàng)建將是高效的。

組件基本信息輸入

這里使用到依賴庫 inquirer,通過它我們可以方便的從命令行中獲取到想要的信息叼屠。

async function getMeta() {
  const meta = await inquirer.prompt([
    {
      type: "input",
      message: "請輸入你要新建的組件名(純英文,大寫開頭):",
      name: "compName",
    },
    {
      type: "input",
      message: "請輸入你要新建的組件名(中文):",
      name: "compZhName",
    },
    {
      type: "input",
      message: "請輸入組件的功能描述:",
      name: "compDesc",
      default: "這是一個新組件",
    },
  ]);
  const { compName } = meta;
  meta.compClassName = compName;

  return meta;
}

可以觀察到上面的代碼非迹,inquirer.prompt返回的是一個Promise环鲤。

模板信息處理

這里使用到的庫是 handlebars,它是一種簡單的模板語言。同時還利用到 fs-extra來對文件進(jìn)行操作憎兽。

npm i handlebars fs-extra -D

創(chuàng)建模板

// template/index.tpl

<template>
  <div>
    {{comName}}
  </div>
</template>
<script>
export default {
  data(){
    return {
    }
  },
  mounted(){
  },
  methods:{  
  }
}
</script>
<style>
</style>

獲取模板

 const tmp = fs.readFileSync(resolve(__dirname, `./template/${path}`), 'utf-8')

編譯

const handlebars  = require("handlebars")
const compile = handlebars.compile(temp,{noEscape:true}) // noEscape防止html中的字符被轉(zhuǎn)譯

傳入信息

compile({
   comName:meta.compName
})

內(nèi)容輸出

const fs = require('fs-extra')
fs.output(resolve(__dirname,`./components/${comName}.vue`),content,error=>{
 console.log(error)
})

最后

package.json中添加執(zhí)行腳本冷离。

// package.json
{
...
"scripts": {
    ...
    "create": "node ./createFile.js",
  },
...
}
image.png
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市纯命,隨后出現(xiàn)的幾起案子西剥,更是在濱河造成了極大的恐慌,老刑警劉巖亿汞,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞭空,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咆畏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門南捂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旧找,你說我怎么就攤上這事溺健。” “怎么了钮蛛?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵鞭缭,是天一觀的道長。 經(jīng)常有香客問我魏颓,道長岭辣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任甸饱,我火速辦了婚禮沦童,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叹话。我一直安慰自己搞动,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布渣刷。 她就那樣靜靜地躺著鹦肿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辅柴。 梳的紋絲不亂的頭發(fā)上箩溃,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機(jī)與錄音碌嘀,去河邊找鬼涣旨。 笑死,一個胖子當(dāng)著我的面吹牛股冗,可吹牛的內(nèi)容都是我干的霹陡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼止状,長吁一口氣:“原來是場噩夢啊……” “哼烹棉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起怯疤,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤浆洗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后集峦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伏社,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抠刺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摘昌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片速妖。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖聪黎,靈堂內(nèi)的尸體忽然破棺而出买优,到底是詐尸還是另有隱情,我是刑警寧澤挺举,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站烘跺,受9級特大地震影響湘纵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滤淳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一梧喷、第九天 我趴在偏房一處隱蔽的房頂上張望脖咐。 院中可真熱鬧铺敌,春花似錦、人聲如沸屁擅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽派歌。三九已至弯囊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胶果,已是汗流浹背匾嘱。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留早抠,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓甘苍,卻偏偏與公主長得像扇谣,于是被迫代替她去往敵國和親序矩。 傳聞我的和親對象是個殘疾皇子瓶蝴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

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