亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

利用node.js實現自動生成前端項目組件的方法詳解

2019-11-19 16:05:55
字體:
來源:轉載
供稿:網友

本文主要給大家介紹了關于利用node.js實現自動生成前端項目組件的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

腳本編寫背景


寫這個小腳本的初衷是,項目本身添加一個組件太繁瑣了,比如我想要去建立一個login的組件,那么我需要手動去IDE中,創建index.js(組件出口文件),login.js(業務文件),login.html,login.less這四個文件。因為每個組件都有一些輸出的代碼,還要把之前組件的那幾行拷貝過來,這種作業真的煩,于是乎寫了一個小腳本去自動完成這些功能。

PS:本腳本運行環境是nodeV7以上,當前時間2017/07,stable版本還是V6,最新的node版本為V8.1.3(LTS版本),如要運行,請升級node版本為LTS版本。

預期效果

在命令行輸入:node set login

在conponents文件夾下面自動生成4個文件,并填寫index.js , login.js的文件公共內容。

如果輸入多層文件如: node set login/foo

則會先檢測conponents文件夾下是否存在login,如不存在,先創建login文件夾,然后創建foo的組件。本腳本主要使用nodejs的fs模塊來完成需求。

fs模塊
fs模塊用于對系統文件及目錄進行讀寫操作,本次主要用到的fs模塊的功能有:

  • fs.existsSync(path) 檢測文件夾是否存在,一個同步的API,只接受一個路徑參數,當前版本異步的廢棄了。
  • fs.mkdir(path,callback) 創建文件夾,異步,兩個必填參數,路徑和回掉。
  • fs.readFileSync(path) 讀取文件,接受一個參數,文件路徑。
  • fs.writeFile(path,data,callback) 寫文件,接受三個參數,文件路徑,向文件中寫的數據,回掉。

代碼實施

流程圖


async function creatCpt() { try {  await exists(); // 檢測文件夾  await readFile(); // 讀取模板內容  await writeFile(await readFile()); //寫入組件 } catch (err) {  console.error(err); }}

獲取命令行參數

node set login為例,想要創建一個login文件夾,首先先要獲取命令行當中的login。在nodejs當中,獲取命令行參數使用process.argv這條命令返回一個數組,第一個參數為nodejs.exe的應用所在絕對路徑,第二個參數為當前腳本所在的絕對路徑,之后所輸入的參數以空格分隔,如輸入node set aaa,得到:


檢測文件夾是否存在

let exists = function () { return new Promise((res) => {  (async function () {   for (let a of path) {    fs.existsSync(basepath + a) ? basepath = `${basepath}${a}/` : await mkdir(a);   }   res(basepath);  })() })}

判斷是否存在文件夾,如果存在,重新拼接路徑繼續檢查,如不存在則生成文件夾。

創建文件夾

node set foo/bar


let mkdir = function (a) { return new Promise((res, rej) => {  fs.mkdir(basepath + a, (err) => {   if (err) rej(err);   basepath = `${basepath}${a}/`   res(basepath);  }); })}

創建文件夾成功后,重新拼接路徑,以便于繼續查找。

讀取模板內容

let reads = [`${basepath}cptTemp/index.js`, `${basepath}cptTemp/cptTemp.js`];//要讀取的文件let readFile = function () { return new Promise((res) => {  for (let a of reads) {   let text = fs.readFileSync(a).toString();   text = text.replace(/time/g, moment().format('YYYY/MM/DD'))    .replace(/temp/g, name);   file.push(text)  }  res(file); })}


每個生成好的文件都需要一個創建的時間,及作者,包括文件的輸出,以及class等結構,這些都是比較公用的,把他們寫在模板當中,然后讀取出來,替換其中的關鍵詞,如時間,組件名等。

生成文件并寫入內容

提前建立好要生成的文件和要讀取的文件。如:

let writes = [`${name}.js`, `${name}.html`, `${name}.less`, `index.js`];let writeFile = function (file) { return new Promise((res, rej) => {  (async function () {   for (let a of writes) {    await fs.writeFile(`${basepath}${a}`,     a == writes[3] ? file[0] : a == writes[0] ? file[1] : '', (err) => {      if (err) rej(err)     })   }   res('succ');  })() })}

目前只寫了2個要讀取的模板,在生成文件之后,會將模板中的內容填充進去。

總結

以上就完成了一個自動生成前端項目組件的小腳本了,當然,還可以繼續擴充,比如這些組件其實還需要再到,組件管理的那個js中去注入,這些都可以用腳本完成,本文就到這里為止了。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

項目地址:https://github.com/jiwenjiang...

本地下載地址:http://xiazai.VeVB.COm/201707/yuanma/angularSeed(VeVB.COm).rar

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx黑人猛交| 亚洲国产精品久久久久久| 国产不卡av在线免费观看| 欧美午夜电影在线| 超碰精品一区二区三区乱码| 欧美成人午夜激情在线| 欧美精品情趣视频| 高跟丝袜一区二区三区| 久久99青青精品免费观看| 国产精品9999| 色偷偷91综合久久噜噜| 国产精品在线看| 欧美精品在线看| 国产91精品黑色丝袜高跟鞋| 久久电影一区二区| 日韩电影中文字幕av| 亚洲区一区二区| 欧美猛交ⅹxxx乱大交视频| 欧美亚洲激情在线| 在线播放国产一区中文字幕剧情欧美| 成人激情黄色网| 欧美性xxxxx极品| 日本一区二区三区在线播放| 亚洲国产精品一区二区久| 中文字幕亚洲无线码在线一区| 日韩av综合网| 成人黄色短视频在线观看| 日韩欧美中文字幕在线观看| 精品国产依人香蕉在线精品| 国产精品久久婷婷六月丁香| 在线电影av不卡网址| 欧美大荫蒂xxx| 精品欧美aⅴ在线网站| 欧美人成在线视频| 精品久久久久国产| 久久精品视频在线播放| 欧美性xxxx18| 91在线直播亚洲| 精品国产一区二区三区久久| 国产亚洲精品日韩| 丝袜美腿精品国产二区| 成人黄色免费网站在线观看| 久久久噜噜噜久噜久久| 性欧美亚洲xxxx乳在线观看| 国产精品免费看久久久香蕉| 深夜成人在线观看| 亚洲福利影片在线| 亚洲美女视频网站| 国产成人av网| 91中文在线观看| 日韩国产在线播放| 国产精品你懂得| 日韩av网址在线观看| 国产精品一区二区在线| 久久手机精品视频| 成人久久一区二区三区| 欧美高清视频在线播放| 久久网福利资源网站| 亚洲国产美女精品久久久久∴| 日韩精品免费综合视频在线播放| 久久综合久久88| 欧美日韩加勒比精品一区| 久久久久久高潮国产精品视| 亚洲人av在线影院| 国产成人鲁鲁免费视频a| 最近2019好看的中文字幕免费| 国产精品三级久久久久久电影| 色无极影院亚洲| 午夜免费在线观看精品视频| 欧美精品久久久久久久免费观看| 亚洲国产精久久久久久| 97视频免费在线看| 久久九九亚洲综合| 欧美日韩成人在线视频| 亚洲色图欧美制服丝袜另类第一页| 亚洲女成人图区| 久久久亚洲影院| 欧美日韩免费在线| 在线亚洲男人天堂| 国产欧美精品一区二区三区-老狼| 久久综合亚洲社区| 亚洲午夜久久久影院| 91sao在线观看国产| 亚洲天堂av女优| 激情懂色av一区av二区av| 国产一区二区三区在线播放免费观看| 97在线观看视频| 久久精品欧美视频| 欧美放荡办公室videos4k| 国产一区二区三区四区福利| 亚洲精品视频二区| 91精品久久久久久久久久另类| 欧美综合国产精品久久丁香| 欧美在线观看www| 国产a∨精品一区二区三区不卡| 欧美一级片在线播放| 亚洲精品美女久久| 国产欧美va欧美va香蕉在| 97视频在线观看视频免费视频| 欧美精品aaa| 日本午夜精品理论片a级appf发布| 亚洲专区国产精品| 国产成人精品久久二区二区| 亚洲伊人久久综合| 91精品国产高清久久久久久久久| 国产精品一区二区av影院萌芽| 欧美日本亚洲视频| 国产欧美日韩免费| 91视频国产高清| 亚洲精品wwww| 亚洲免费影视第一页| 国产精品久久视频| 亚洲aⅴ日韩av电影在线观看| 福利视频一区二区| 欧美日韩国产色视频| 亚洲天堂av电影| 国产日韩欧美视频| 国产精品久久久久久亚洲影视| 国产69精品久久久久9| 欧美大成色www永久网站婷| 色婷婷av一区二区三区久久| 国产经典一区二区| 日韩av最新在线观看| 98视频在线噜噜噜国产| 91精品视频大全| 国产裸体写真av一区二区| 久久福利视频网| 成人激情在线观看| 国产综合福利在线| 日韩中文第一页| 日韩中文字幕在线| 2019日本中文字幕| 国产精品永久免费在线| 91精品在线观看视频| 91美女高潮出水| 国产精品午夜一区二区欲梦| 亚洲国产精品一区二区久| 亚洲国内精品在线| 国产精品尤物福利片在线观看| www国产精品com| 一区二区国产精品视频| 懂色aⅴ精品一区二区三区蜜月| 欧美在线观看一区二区三区| 欧美在线性视频| 欧美小视频在线| 国产婷婷成人久久av免费高清| 国产欧美亚洲视频| 丁香五六月婷婷久久激情| xxxxx成人.com| 国产精品扒开腿做爽爽爽男男| 欧美老女人性视频| 亚洲国产精品福利| 欧美成人剧情片在线观看| 九九热这里只有精品免费看| 欧美极品欧美精品欧美视频| 国产在线999| 91人人爽人人爽人人精88v| 欧美韩国理论所午夜片917电影| 精品国产欧美一区二区三区成人| 久久久久久九九九| 国产精品视频永久免费播放| 色噜噜亚洲精品中文字幕| 亚洲乱码av中文一区二区| 国产91精品久久久|