中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js學習之自己編寫命令行工具CLI

發布時間:2020-06-28 08:39:28 來源:網絡 閱讀:1182 作者:lixiaoyu1223 欄目:web開發

之前從來沒接觸過這類的課題,自己寫命令行工具,沒寫過之前覺得這是一個很高大上的玩意兒,寫過之后才發現原來不難。寫之前當然是先在網上扒拉扒拉,看看別人怎么寫的,結果找來找去,千篇一律,一個字也不帶換的,還都是從npm倉庫中復制下來的,還復制的不全,我已無力吐嘈!!!!

最后還是在NPM倉庫中找到一段比較符合自己的介紹,就是自定義命令,下面就按照我的代碼記錄一下我是怎么寫的。

首先創建項目,alaska-cli,編輯package.json,加入babel等就不細說了,目錄結構如下:

alaska-cli

-index.js

-src

--alaska-build.js


本項目依賴commander包,這是一個非常方便簡單的開發自己的CLI命令的包。


先看index.js:

'use strict';
const program = require('commander');
const buildAdmin = require('./src/alaska-build');
program
  .version('0.1.0')
  .command('alaska-build')
  .alias('build')
  .description('build admin views')
  .action(buildAdmin);

program.parse(process.argv);

導入commander, 導入CLI命令背后要執行的函數文件。

使用commander創建命令:

  .version('0.1.0')

命令版本,這個沒什么好說的。

  .command('alaska-build')

命令名字,就是以后可以直接在命令窗口使用的名字,像webpack babel等。

  .alias('build')

命令的別名,就像小名一樣,一般是個短名字。

  .description('build admin views')

命令介紹,生辰八字什么的可以寫到這,

    .action(buildAdmin);

執行命令時要調用的函數,

program.parse(process.argv);

開始解析命令。

到這已經差不多了,我要說現在收尾你信么,不管你信不信,反正我是信了,剩下的就是寫這個命令要怎么做事了。

看alaska-build.js:

/**
 * 所有讀取文件時的錯誤處理
 * */
function excludeError(err, files) {
  if (err) {
    console.log(err);
  } else {
    if (typeof files === 'object' && files.length > 0) {
      collection(files);
    } else {
      console.log('未找到要構建的文件!');
    }
  }
}
module.exports = function () {
  fs.readdir(path, excludeError);
};

這一段不用說了吧,就是讀取一個目錄下的所有文件,從每個文件里導出一些數據組合再輸出到另一個目錄下。

寫完這些邏輯,這個項目基本上已經完了,把項目上傳到NPM倉庫,在其他項目里就可以用 npm install

來安裝這個包,之后就能像webpack babael 這類的命令一樣直接用了。


github :  https://github.com/maichong/alaska-cli.git

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜梁县| 运城市| 墨江| 高碑店市| 五峰| 泸定县| 菏泽市| 磴口县| 田林县| 太原市| 井冈山市| 环江| 沁水县| 肥城市| 三台县| 长武县| 长子县| 游戏| 大宁县| 通榆县| 施甸县| 嘉峪关市| 麻阳| 芷江| 崇阳县| 延津县| 龙南县| 常州市| 余姚市| 秀山| 安乡县| 甘南县| 普兰店市| 华亭县| 丰顺县| 晋州市| 洞口县| 政和县| 玉林市| 称多县| 阳城县|