<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳解如何實現一個簡單的Node.js腳手架

        來源:懂視網 責編:小采 時間:2020-11-27 22:24:24
        文檔

        詳解如何實現一個簡單的Node.js腳手架

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

        原因

        在工作中,需要開發一個腳手架,用于給相關用戶提供相關的開發便利性。

        適合人群

        對前端、Node操作有一定的了解,同時向了解腳手架開發過程或者需要自己實現一個腳手架的開發者。

        目標

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

        步驟

        開發腳手架

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

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

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

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

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

        對用戶進行提示

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

        commander是一個提供用戶命令行輸入和參數解析的強大功能。有需要的可以閱讀相關的庫文檔。在這里我介紹兩個用的最多的方法。

        option

        能夠初始化自定義的參數對象,設置關鍵字和描述,同時還可以設置讀取用戶輸入的參數。具體用法如下:

        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

        該方法能夠在命令行增加一個命令。用戶在執行此命令后,能夠執行回調中的邏輯。具體用法如下:

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

        具體展示效果如下:

         

        對用戶文件進行讀寫操作

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

        讀取文件

        現在,我們需要讀取用戶的cm-cli.json配置文件來進行一些配置。

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

        寫入文件模板

        我們提前將模板文件存儲在CDN上,再根據本地讀取到的相關腳手架配置文件來進行模板的下載。

        注:腳手架中讀取的路徑為使用者使用時當前路徑,因此沒有辦法將模板文件存儲在腳手架中進行讀取。

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

        注:在文件寫入時建議先判斷文件是否存在,再進行覆蓋。

        使用Shell腳本

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

        具體示例如下:

        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腳本來進行文件夾的創建和文件模板的下載。

        總結

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

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

        腳手架需要能夠執行Shell腳本,可以使用node-cmd庫來快速實現需求。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳解如何實現一個簡單的Node.js腳手架

        詳解如何實現一個簡單的Node.js腳手架:原因 在工作中,需要開發一個腳手架,用于給相關用戶提供相關的開發便利性。 適合人群 對前端、Node操作有一定的了解,同時向了解腳手架開發過程或者需要自己實現一個腳手架的開發者。 目標 開發一個簡單的腳手架,能夠提供給用戶進行安裝。 能夠輸出相關
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产区图片区小说区亚洲区| 国产亚洲精aa在线看| av网站免费线看| 国产做床爱无遮挡免费视频| 性色av极品无码专区亚洲| 成人免费无码大片A毛片抽搐| 亚洲熟伦熟女专区hd高清| 女人18毛片免费观看| 亚洲av永久无码精品网址| 四虎1515hm免费国产| 日韩在线视频免费| 亚洲AV无码久久精品蜜桃| 三年片在线观看免费观看大全动漫| 亚洲乱码中文字幕综合| 无码成A毛片免费| 亚洲黄页网在线观看| 免费成人午夜视频| a毛片在线免费观看| 亚洲尹人九九大色香蕉网站| 青青草免费在线视频| 亚洲AV永久无码精品一福利| 亚洲色一色噜一噜噜噜| 久久99精品国产免费观看| 亚洲三级中文字幕| 免费中文字幕一级毛片| a毛片免费全部播放完整成| 亚洲无人区视频大全| 国产一区二区三区在线观看免费| 久久精品免费网站网| 亚洲国产亚洲片在线观看播放| 国产自产拍精品视频免费看| 免费网站观看WWW在线观看| 亚洲免费观看在线视频| 亚洲国产黄在线观看| 9277手机在线视频观看免费| 亚洲色无码专区一区| 国产精品亚洲产品一区二区三区| 91av在线免费视频| 在线观看亚洲免费| 精品无码一区二区三区亚洲桃色| 在线观看永久免费视频网站|