最近在學(xué)習(xí)nodejs熬荆,在掌握了一些基礎(chǔ)知識之后杖挣,就想著如何運(yùn)用它解決一些簡單的問題。
代碼地址
https://github.com/zhuweileo/gitignore-cmd
目標(biāo)
平時(shí)初始化項(xiàng)目工程的時(shí)候献幔,總是需要添加.gitignore
文件负甸,我之前總是手動(dòng)復(fù)制粘貼一個(gè)寫好的模板,雖然也不算麻煩慎玖,但是作為懶癌晚期贮尖,我連復(fù)制粘貼也不愿意,于是我就想用nodejs寫一個(gè)命令行工具趁怔,直接輸入一個(gè)命令湿硝,就在當(dāng)前文件夾內(nèi)生成.gitignore
文件。其實(shí)就是讓nodejs幫你復(fù)制粘貼润努。
項(xiàng)目目錄
主要功能代碼
getIgnore.js
var https = require('https');
var fs = require('fs');
var url = 'https://raw.githubusercontent.com/zhuweileo/my-git-ignore/master/.gitignore';
module.exports = function getIgnore(){
https.get(url, function (res) {
res.setEncoding('utf8');
let rawData = '';
res.on('data', (chunk) => {
rawData += chunk;
});
res.on('end', () => {
fs.writeFileSync('.gitignore',rawData)
});
}).on('error',function (e) {
console.log(e)
})
}
實(shí)現(xiàn)邏輯很簡單:
- 通過https請求关斜,從我的git倉庫中獲得.gitignore文件
- 將獲得文件內(nèi)容寫入到當(dāng)前目錄
為什么從遠(yuǎn)程請求?
這樣我每次都可以取到最新的.gitignore文件铺浇。一但.gitignore文件更新痢畜,不需要更新命令行工具。
package.json
{
"name": "zw-gi",
"version": "0.0.1",
"description": "快速生成gitignore的命令行工具",
"main": "getIgnore.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "朱維",
"license": "ISC",
"bin": {
"zw-gi": "bin/zw-gi"
}
}
這里的關(guān)鍵點(diǎn)是bin字段:
"bin": {
"zw-gi": "bin/zw-gi"
}
意思是:當(dāng)你在命令行中執(zhí)行zw-gi
命令時(shí)鳍侣,nodejs會執(zhí)行bin/zw-gi
文件中的代碼
當(dāng)通過npm install zw-gi -g
命令安裝你的nodejs命令行工具時(shí)丁稀,npm會根據(jù)這個(gè) bin字段,生成可執(zhí)行程序倚聚。不同的系統(tǒng)生成的可執(zhí)行程序不同:
- windows系統(tǒng):zw-gi.cmd (位于C:\Users{用戶名}\AppData\Roaming\npm)
- linux系統(tǒng):zw-gi
bin/zw-gi
意思很簡單二驰,就是執(zhí)行我們寫的getIgnore函數(shù)
#!/usr/bin/env node
var getIgnore = require('../getIgnore')
getIgnore();
發(fā)布
這樣這個(gè)模塊就寫好了,可以發(fā)布到npm上了秉沼。
也可以不發(fā)布桶雀,在package.json
文件的同級目錄執(zhí)行npm install . -g
安裝到本地,自娛自樂唬复。