摘要:各種開頭的項目,還有些空倉庫,啥都沒寫的。具體的代碼,調用,實在簡單,看看就好打包發布就這樣打包,肯定不會有全局執行文件滴。然后在中,敲下如下代碼說明全局執行命令叫是執行文件。
不知什么時候開始,自家github堆滿了倉庫代碼。。。各種demo開頭的項目,還有些空倉庫,啥都沒寫的。自然,程序員寫的最差的代碼就是以前寫的代碼了,為了維護心中美好的光輝形象,我決定——————
不過,刪除過程確實麻煩了些,身為“頭腦簡單,四肢發達” ,哦不對,“四肢簡單,頭腦發達”的程序員,怎么會甘心做苦力勞動呢?我決定搞個命令行批量執行下。
要刪除當然是要找API啦,不過,我開始想的是用puppeteer無頭chrome搞的,后來發現直接有API,就直接用嘍。
刪除git倉庫需要認證權限,我這里直接用Basic Auth驗證,簡單!Basic驗證,簡單說就是在請求頭里,搞個Authorization:用戶名:密碼
必須是要美美的命令行優化工具啦,I pick這個inquirer。 有一些帶顏色的終端字看著還是ok的,所以還帶上了chalk這個庫。
just do it具體的代碼,調用API,實在簡單,看看就好:
#!/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打包發布
就這樣打包,肯定不會有全局執行文件滴。
首先你需要在主執行的js的第一行寫上#!/usr/bin/env node
大家都知道,這是linux中指定文件執行解釋器的意思,windows系統沒用,但是配合上npm就有用啦,且先寫著。
然后:在package.json中,敲下如下代碼:"bin": { "ngit": "index.js" },
ngit說明全局執行命令叫ngit, index.js是執行文件。
ok,最后npm publish發布npm install -g nodejs-github
再到cmd中,輸入
ngit
就會直接執行代碼啦,呼呼呼呼呼呼~~
github: https://github.com/chendonming/nodejs-github
npm: nodejs-github
各位看官闊以看下。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104714.html
摘要:如果實在不會安裝可以去網上找教程。打開,跳轉到剛剛創建的文件夾位置,運行命令然后會在你的文件夾中搭建好了環境配置配置修改一些你的博客名字描述作者等。基于我的個人經驗,建議都開啟開啟標簽頁命令,在博客目錄添加元數據開啟分類頁命令,在博 Windows環境下Git安裝、配置SSH key、安裝node.js npm、安裝Hexo及配置、發布博客 前言 使用github pages服務搭建博客的...
摘要:本文將介紹如何在一臺的云服務器上快速部署博客站點,如何快速發布一篇博文并通過云服務器上的私有倉庫部署到服務器目錄下。此外,還要在云服務器上安裝和兩個必備的軟件包。在服務器上部署博客以下為文章正文。 推薦理由:Hexo 是用 Node.js 開發的一個靜態站點生成器(Static Site Generator),支持 Markdown 語法寫作,有著強大的插件系統,而且性能優異。下面我推...
摘要:博客地址這篇文章是我在眾成翻譯翻譯的一篇文章,一篇的入門指南,原文鏈接的出現使得用寫服務端應用成為可能。你可以看到,這個過程也安裝了其他的模塊,它們都是的所依賴的模塊。但是,得到的輸出信息會很冗長,我們可以加上來精簡一下輸出。 github 博客地址: https://github.com/zengxiaota... 這篇文章是我在 眾成翻譯 翻譯的一篇文章,一篇 npm 的入門指南,...
閱讀 2241·2023-04-26 01:50
閱讀 706·2021-09-22 15:20
閱讀 2579·2019-08-30 15:53
閱讀 1585·2019-08-30 12:49
閱讀 1704·2019-08-26 14:05
閱讀 2700·2019-08-26 11:42
閱讀 2298·2019-08-26 10:40
閱讀 2587·2019-08-26 10:38