成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

制作可全局執(zhí)行的NPM包:批量清理github倉(cāng)庫(kù)

junnplus / 2756人閱讀

摘要:各種開頭的項(xiàng)目,還有些空倉(cāng)庫(kù),啥都沒寫的。具體的代碼,調(diào)用,實(shí)在簡(jiǎn)單,看看就好打包發(fā)布就這樣打包,肯定不會(huì)有全局執(zhí)行文件滴。然后在中,敲下如下代碼說明全局執(zhí)行命令叫是執(zhí)行文件。

不知什么時(shí)候開始,自家github堆滿了倉(cāng)庫(kù)代碼。。。各種demo開頭的項(xiàng)目,還有些空倉(cāng)庫(kù),啥都沒寫的。自然,程序員寫的最差的代碼就是以前寫的代碼了,為了維護(hù)心中美好的光輝形象,我決定——————

不過,刪除過程確實(shí)麻煩了些,身為“頭腦簡(jiǎn)單,四肢發(fā)達(dá)” ,哦不對(duì),“四肢簡(jiǎn)單,頭腦發(fā)達(dá)”的程序員,怎么會(huì)甘心做苦力勞動(dòng)呢?我決定搞個(gè)命令行批量執(zhí)行下。

找到github API文檔

要?jiǎng)h除當(dāng)然是要找API啦,不過,我開始想的是用puppeteer無頭chrome搞的,后來發(fā)現(xiàn)直接有API,就直接用嘍。
刪除git倉(cāng)庫(kù)需要認(rèn)證權(quán)限,我這里直接用Basic Auth驗(yàn)證,簡(jiǎn)單!Basic驗(yàn)證,簡(jiǎn)單說就是在請(qǐng)求頭里,搞個(gè)Authorization:用戶名:密碼

命令行工具

必須是要美美的命令行優(yōu)化工具啦,I pick這個(gè)inquirer。 有一些帶顏色的終端字看著還是ok的,所以還帶上了chalk這個(gè)庫(kù)。

just do it

具體的代碼,調(diào)用API,實(shí)在簡(jiǎn)單,看看就好:

#!/usr/bin/env node

var inquirer = require("inquirer");
var axios = require("axios");
var chalk = require("chalk");
var log = console.log;

var api = {
  user: async () => {
    return await axios({
      url: "https://api.github.com/user",
      method: "GET",
    });
  },
  repos: async () => {
    return await axios({
      url: "https://api.github.com/user/repos",
      method: "GET",
    });
  },
  deleteRepos: async (user, name) => {
    return await axios({
      method: "DELETE",
      url: `https://api.github.com/repos/${user}/${name}`,
    });
  },
  login: async () => {
    return await inquirer.prompt([
      {
        name: "username",
        message: "username?"
      },
      {
        name: "password",
        type: "password",
        message: "password?"
      }
    ]);
  },
  listRepos: async (repos) => {
    var list = [];
    repos.forEach(v => {
      var desc = v.description === null ? "" : v.description;
      list.push({name: v.full_name + " " + desc});
    });
    return await inquirer.prompt([
      {
        type: "checkbox",
        name: "rep",
        message: "select need cleared repos",
        choices: list
      }
    ]);
  }
};

(async () => {
  var inf = await api.login();
  var base64 = new Buffer.from(inf.username + ":" + inf.password).toString("base64");
  axios.interceptors.request.use(config => {
    config.headers = {
      Authorization: "Basic " + base64
    };
    return config;
  });
  var user = await api.user();
  log(`welcome ! ${chalk.green(user.data.name || user.data.login)}`);
  var repos = await api.repos();
  var selectRepos = await api.listRepos(repos.data);
  for (var j = 0; j < selectRepos.rep.length; j++) {
    var name = selectRepos.rep[j].indexOf(" ") === -1 ? selectRepos.rep[j] : selectRepos.rep[j].substring(0, selectRepos.rep[j].indexOf(" "));
    await api.deleteRepos(user.data.login, name);
  }
  log(chalk.green("successfull!"));
})();
npm打包發(fā)布

就這樣打包,肯定不會(huì)有全局執(zhí)行文件滴。

首先你需要在主執(zhí)行的js的第一行寫上
#!/usr/bin/env node

大家都知道,這是linux中指定文件執(zhí)行解釋器的意思,windows系統(tǒng)沒用,但是配合上npm就有用啦,且先寫著。

然后:在package.json中,敲下如下代碼:
 "bin": {
    "ngit": "index.js"
  },

ngit說明全局執(zhí)行命令叫ngit, index.js是執(zhí)行文件。

ok,最后npm publish發(fā)布
npm install -g nodejs-github

再到cmd中,輸入

ngit

就會(huì)直接執(zhí)行代碼啦,呼呼呼呼呼呼~~

github: https://github.com/chendonming/nodejs-github
npm: nodejs-github

各位看官闊以看下。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104714.html

相關(guān)文章

  • 使用hexo+github搭建免費(fèi)個(gè)人博客詳細(xì)教程

    摘要:如果實(shí)在不會(huì)安裝可以去網(wǎng)上找教程。打開,跳轉(zhuǎn)到剛剛創(chuàng)建的文件夾位置,運(yùn)行命令然后會(huì)在你的文件夾中搭建好了環(huán)境配置配置修改一些你的博客名字描述作者等?;谖业膫€(gè)人經(jīng)驗(yàn),建議都開啟開啟標(biāo)簽頁(yè)命令,在博客目錄添加元數(shù)據(jù)開啟分類頁(yè)命令,在博 Windows環(huán)境下Git安裝、配置SSH key、安裝node.js npm、安裝Hexo及配置、發(fā)布博客 前言 使用github pages服務(wù)搭建博客的...

    番茄西紅柿 評(píng)論0 收藏0
  • 在 Ubuntu 14.04 服務(wù)器上部署 Hexo 博客

    摘要:本文將介紹如何在一臺(tái)的云服務(wù)器上快速部署博客站點(diǎn),如何快速發(fā)布一篇博文并通過云服務(wù)器上的私有倉(cāng)庫(kù)部署到服務(wù)器目錄下。此外,還要在云服務(wù)器上安裝和兩個(gè)必備的軟件包。在服務(wù)器上部署博客以下為文章正文。 推薦理由:Hexo 是用 Node.js 開發(fā)的一個(gè)靜態(tài)站點(diǎn)生成器(Static Site Generator),支持 Markdown 語法寫作,有著強(qiáng)大的插件系統(tǒng),而且性能優(yōu)異。下面我推...

    cyqian 評(píng)論0 收藏0
  • [譯]npm入門指南

    摘要:博客地址這篇文章是我在眾成翻譯翻譯的一篇文章,一篇的入門指南,原文鏈接的出現(xiàn)使得用寫服務(wù)端應(yīng)用成為可能。你可以看到,這個(gè)過程也安裝了其他的模塊,它們都是的所依賴的模塊。但是,得到的輸出信息會(huì)很冗長(zhǎng),我們可以加上來精簡(jiǎn)一下輸出。 github 博客地址: https://github.com/zengxiaota... 這篇文章是我在 眾成翻譯 翻譯的一篇文章,一篇 npm 的入門指南,...

    mrcode 評(píng)論0 收藏0
  • Maven學(xué)習(xí)筆記

    摘要:學(xué)習(xí)筆記先生,您在寫代碼嗎不,我們正在完成一項(xiàng)偉大的工程。于是打算重新學(xué)習(xí)一下。中央倉(cāng)庫(kù)鏡像為了分擔(dān)中央倉(cāng)庫(kù)的流量,提升用戶的訪問速度。生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)。修改源碼后也需要逐個(gè)手動(dòng)進(jìn)行操作。 maven學(xué)習(xí)筆記 先生,您在寫代碼嗎? 不,我們正在完成一項(xiàng)偉大的工程。 前言 在剛學(xué)maven時(shí),我就把maven當(dāng)作一個(gè)引入jar包的工具而已,以前是自己下載jar包,現(xiàn)在是只用...

    tomlingtm 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<