国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

詳解如何實(shí)現(xiàn)一個(gè)簡單的Node.js腳手架

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:24:24
文檔

詳解如何實(shí)現(xiàn)一個(gè)簡單的Node.js腳手架

詳解如何實(shí)現(xiàn)一個(gè)簡單的Node.js腳手架:原因 在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性。 適合人群 對(duì)前端、Node操作有一定的了解,同時(shí)向了解腳手架開發(fā)過程或者需要自己實(shí)現(xiàn)一個(gè)腳手架的開發(fā)者。 目標(biāo) 開發(fā)一個(gè)簡單的腳手架,能夠提供給用戶進(jìn)行安裝。 能夠輸出相關(guān)
推薦度:
導(dǎo)讀詳解如何實(shí)現(xiàn)一個(gè)簡單的Node.js腳手架:原因 在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性。 適合人群 對(duì)前端、Node操作有一定的了解,同時(shí)向了解腳手架開發(fā)過程或者需要自己實(shí)現(xiàn)一個(gè)腳手架的開發(fā)者。 目標(biāo) 開發(fā)一個(gè)簡單的腳手架,能夠提供給用戶進(jìn)行安裝。 能夠輸出相關(guān)

原因

在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性。

適合人群

對(duì)前端、Node操作有一定的了解,同時(shí)向了解腳手架開發(fā)過程或者需要自己實(shí)現(xiàn)一個(gè)腳手架的開發(fā)者。

目標(biāo)

  1. 開發(fā)一個(gè)簡單的腳手架,能夠提供給用戶進(jìn)行安裝。
  2. 能夠輸出相關(guān)提示。
  3. 對(duì)用戶文件進(jìn)行讀寫操作。
  4. 在腳手架中使用Shell腳本。

步驟

開發(fā)腳手架

腳手架的開發(fā)最開始過程與普通的前端項(xiàng)目相同,需要一個(gè)入口文件command.js和配置文件package.json。

與其他配置文件不同的是,需要在package.json文件中加上一下一項(xiàng):

{
 ...,
 "bin": {
 "cm-cli": "command.js"
 }
}

在配置文件中增加了此項(xiàng)后,只需要在配置文件根目錄下執(zhí)行npm link命令,即可使用cm-cli --help命令來查看加載的cm-cli腳手架。

如果你發(fā)布了你的腳手架,那么在其他用戶使用命令npm install -g cm-cli之后,便可以在全局下使用你的腳手架了。

對(duì)用戶進(jìn)行提示

在對(duì)注釋和命令進(jìn)行提示中,我們需要使用到commander包,使用npm install commander即可進(jìn)行安裝。(如果NPM版本低于5,則需要添加--save參數(shù)保證更新package.json配置文件)。

commander是一個(gè)提供用戶命令行輸入和參數(shù)解析的強(qiáng)大功能。有需要的可以閱讀相關(guān)的庫文檔。在這里我介紹兩個(gè)用的最多的方法。

option

能夠初始化自定義的參數(shù)對(duì)象,設(shè)置關(guān)鍵字和描述,同時(shí)還可以設(shè)置讀取用戶輸入的參數(shù)。具體用法如下:

const commander = require('commander');

commander.version('1.0.0')
 .option('-a, --aaa', 'aaaaa')
 .option('-b, --bbb', 'bbbbb')
 .option('-c, --ccc [name]', 'ccccc')
 .parse(process.argv);


if (commander.aaa) {
 console.log('aaa');
}

if (commander.bbb) {
 console.log('bbb');
}

if (commander.ccc) {
 console.log('ccc', commander.ccc);
}

具體展示如下:

command

該方法能夠在命令行增加一個(gè)命令。用戶在執(zhí)行此命令后,能夠執(zhí)行回調(diào)中的邏輯。具體用法如下:

commander
 .command('init <extensionId>')
 .description('init extension project')
 .action((extensionId) => {
 console.log(`init Extension Project "${extensionId}"`);
 // todo something you need
 });

具體展示效果如下:

 

對(duì)用戶文件進(jìn)行讀寫操作

通過上面的步驟,我們已經(jīng)能夠完成一個(gè)簡單的腳手架了。下面,我們需要讀取用戶配置,同時(shí)為用戶生成一些模板文件。

讀取文件

現(xiàn)在,我們需要讀取用戶的cm-cli.json配置文件來進(jìn)行一些配置。

我們可以使用Node.js的fs文件模塊來對(duì)文件進(jìn)度讀操作,由于此處沒有太多難點(diǎn),因此略去。

寫入文件模板

我們提前將模板文件存儲(chǔ)在CDN上,再根據(jù)本地讀取到的相關(guān)腳手架配置文件來進(jìn)行模板的下載。

注:腳手架中讀取的路徑為使用者使用時(shí)當(dāng)前路徑,因此沒有辦法將模板文件存儲(chǔ)在腳手架中進(jìn)行讀取。

我們可以使用諸如request這種庫來幫助我們進(jìn)行文件下載,簡化操作步驟。執(zhí)行npm install request`即可進(jìn)行安裝。

注:在文件寫入時(shí)建議先判斷文件是否存在,再進(jìn)行覆蓋。

使用Shell腳本

與Node.js提供的API函數(shù)來看,有些人更加傾向于使用Shell腳本來進(jìn)行文件操作。幸運(yùn)的是,我們也可以在我們的腳手架中引入node-cmd來啟用對(duì)Shell腳本的支持。執(zhí)行npm install node-cmd即可進(jìn)行安裝。

具體示例如下:

commander
 .command('init <extensionId>')
 .description('init extension project')
 .action((extensionId) => {
 id = extensionId;
 console.log(`init Extension Project "${extensionId}"`);

 cmd.get(
 `
 mkdir -p static/${extensionId}

 mkdir tmp
 mkdir tmp/source-file
 mkdir tmp/build-file
 curl -o tmp/source-file/index.js https://xxxxxxxx.com?filename=index.js
 touch tmp/source-file/index.css

 curl -o tmp/build-file/server.js https://xxxxxxxx.com?filename=server.js
 curl -o tmp/build-file/router.js https://xxxxxxxx.com?filename=router.js
 curl -o tmp/build-file/package.json https://xxxxxxxx.com?filename=package.json
 
 cp tmp/source-file/* static/${extensionId}
 cp tmp/build-file/* ./
 rm -fr tmp
 npm install
 `,
 (err, data) => {
 console.log(data)
 if (!err) {
 console.log('init success');
 return;
 }

 console.error('init error');
 });
 });

我們可以快速的使用Shell腳本來進(jìn)行文件夾的創(chuàng)建和文件模板的下載。

總結(jié)

腳手架想要在終端能夠快速執(zhí)行,可以在package.json配置文件中增加相關(guān)字段。

腳手架需要能夠讀取相關(guān)終端輸入,可以使用commander庫來快速開發(fā)。

腳手架需要能夠執(zhí)行Shell腳本,可以使用node-cmd庫來快速實(shí)現(xiàn)需求。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

詳解如何實(shí)現(xiàn)一個(gè)簡單的Node.js腳手架

詳解如何實(shí)現(xiàn)一個(gè)簡單的Node.js腳手架:原因 在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性。 適合人群 對(duì)前端、Node操作有一定的了解,同時(shí)向了解腳手架開發(fā)過程或者需要自己實(shí)現(xiàn)一個(gè)腳手架的開發(fā)者。 目標(biāo) 開發(fā)一個(gè)簡單的腳手架,能夠提供給用戶進(jìn)行安裝。 能夠輸出相關(guān)
推薦度:
標(biāo)簽: 詳解 腳手架 node.js
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美激情亚洲图片 | 欧美xxxx做受欧美69 | 亚洲欧美综合网站 | 欧美国产成人精品一区二区三区 | 亚洲精品综合久久中文字幕 | 欧美高清正版在线 | 一级毛片一级毛片一级级毛片 | 一级成人a毛片免费播放 | 在线精品欧美日韩 | 亚洲视频在线视频 | 国产免费资源高清小视频在线观看 | 在线免费观看国产视频 | 国产成人a一区二区 | 欧美黄色第一页 | 国产精品久久毛片蜜月 | 亚洲va欧美ⅴa国产va影院 | 亚洲午夜在线视频 | 亚洲欧美影院 | 97r久久精品国产99国产精 | 国产在线观看第一页 | 97毛片| 国产精品亚洲一区二区三区久久 | 色在线免费视频 | 日本一区二区三区在线播放 | xxx色| 精品在线免费观看 | 国产午夜免费视频 | 日韩日韩日韩 | 亚洲精品二三区伊人久久 | 欧美成人精品一区二区三区 | a天堂专区一区二区三区 | 亚洲精品免费观看 | 99精品欧美一区二区三区综合在线 | 亚洲第一免费视频 | 成人精品视频一区二区在线 | 欧美视频精品一区二区三区 | 国产一区二区成人 | 亚洲一区二区三区久久久久 | 欧美精品色精品一区二区三区 | 国产91精品久久久久999 | 久久精品综合国产二区 |