引入gitlab倉庫代碼到npm包的教程
背景介紹
隨著人類地發(fā)展,社會(huì)地進(jìn)步,計(jì)算機(jī)技術(shù)地更新迭代,每一片碼海里都有它寶貴的財(cái)富,每一座碼山里都有著各自的秘密。怎么守住財(cái)富,隱藏一些秘密,成了一些開發(fā)人員所關(guān)心的事情。
需求分析
簡(jiǎn)單地說,有這樣一個(gè)需求,我期望在項(xiàng)目中引入一個(gè)模塊,這個(gè)模塊我又不高興給一些無關(guān)的人員看到,想想辦法,我調(diào)研了下有這么些可行的辦法。
結(jié)合cnpm,搭建npm私有倉庫
用Nexus管包,同時(shí)JAVA、Go等等語言的包它也可以管
用Verdaccio搞一下
用GitHub、gitlab之類的倉庫作為代碼包引入
今天我們著重介紹用GitHub、gitlab之類的倉庫作為代碼包引入,文中是以gitlab為例。
以u(píng)tils包為例,把它搞私有
如圖所示,我們基于gitlab創(chuàng)建一個(gè)通用工具包項(xiàng)目-utils,這里因?yàn)槲宜诘倪@個(gè)環(huán)境它需要連接華為的VPN才可以訪問,所以我就給它public了,如果說你是公網(wǎng)的一個(gè)環(huán)境,那我建議你選private。

在創(chuàng)建完項(xiàng)目以后呢,你把它克到你本地, 然后執(zhí)行npm init命令進(jìn)行項(xiàng)目初始化工作,具體的你可以看下下面截圖,對(duì)應(yīng)著改改package name,description,等等屬性。

這里插一個(gè)git知識(shí)點(diǎn)啊,你是不是覺得每次提交輸入賬號(hào)密碼很煩呢,那其實(shí)你也可以配置下ssh,具體的操作如下(以windows為例),WIN+R輸入cmd然后執(zhí)行ssh-keygen -o -t rsa -b 4096 -C "你的git倉庫郵箱",然后就是一路回車,執(zhí)行cat ~/.ssh/gitlab/id_rsa.pub | clip命令去拷貝生成的公鑰(這里我選的不是默認(rèn)地址,如果你是一路回車的話,應(yīng)該是這個(gè)地址 ~/.ssh/id_rsa.pub)
具體的步驟我記錄了下,你可以參考下(額,已經(jīng)做模糊化處理,郵箱瞎寫的)
PS D:\gitlab\base> ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\ataola/.ssh/id_rsa): C:\Users\ataola/.ssh/gitlab/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\ataola/.ssh/gitlab/id_rsa.
Your public key has been saved in C:\Users\ataola/.ssh/gitlab/id_rsa.pub.
The key fingerprint is:
SHA256:L4+LRA/YbDiVhwZ4EPNczFmwFPUiKUkYR3MCe6xaGNs [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| *OBo**o |
| oO.O+= . |
|. ..B O o . |
| = o O o . |
|o E + * S |
| o + o . |
|. . o . |
| . . + |
| . o.. |
+----[SHA256]-----+
PS D:\gitlab\base>
cat ~/.ssh/gitlab/id_rsa.pub | clip
把對(duì)應(yīng)的公鑰拷貝到剪貼板以后呢,去gitlab的user settings下的SSH Keys下面粘貼一下,如下圖所示。

配置成功后,喜提郵件一封。

配置完以后,創(chuàng)建一個(gè)index.js文件,隨便寫點(diǎn)東西吧,我這里是寫了個(gè)加法做測(cè)試。
function add(a, b) {
return a + b;
}
module.exports = {
add
}
然后你就可以提交代碼了
git add .
git commit -m "feature: 初始化utils包"
git push
創(chuàng)建一個(gè)項(xiàng)目,引入樓上的utils包
接下來,我們需要?jiǎng)?chuàng)建一個(gè)項(xiàng)目去引入樓上創(chuàng)建的utils包,創(chuàng)建的過程你可以參考樓上創(chuàng)建utils包的過程,搞完以后呢,你可以命令執(zhí)行npm install git+你的倉庫地址,也可以直接人肉寫到package.json里面,然后執(zhí)行npm install
為了讓大家更直觀地看到結(jié)果,我貼張最后的圖吧。最左邊是我創(chuàng)建了一個(gè)index.js文件做引入utils包的測(cè)試,左下方是執(zhí)行node index.js后輸出的結(jié)果,右邊是安裝了私有庫后package.json的模樣

嗯,是的,是不是覺得最后執(zhí)行的命令太長了記不住啊,其實(shí)如果你在linux環(huán)境下,結(jié)合tmux或者screen做下分屏,那就很簡(jiǎn)單直觀了,直接切半屏,執(zhí)行node index.js就可以看到結(jié)果了。
除了樓上的方法:execute '!node index.js > out.txt'也可以試下,它主要是執(zhí)行了node命令后,把結(jié)果輸出到out.txt文件里,然后你再打開也是能看到結(jié)果的。
vim水平有限,這里留下一個(gè)思路供讀者實(shí)現(xiàn),其實(shí)你可以配置到vimrc文件下,然后通過一些快捷鍵去簡(jiǎn)化記憶,這樣子會(huì)方便很多。
最后
回顧下,我們主要是提出了建立私包的構(gòu)想,然后結(jié)合gitlab搞了一個(gè)私包,再新建一個(gè)項(xiàng)目引入去測(cè)試我們搞得還行嘛,中間也穿插了一些git、vim的知識(shí),希望能在搞私包的時(shí)候幫到你。
