為什么要共享組件? 都2019年了...還ctrl+c > ctrl+v,多處維護(hù)嗎?
為什么要搭私有源? 公司代碼扔到github/npm官方源上不好吧...有的小伙伴cnpm,有的小伙伴npm ,安裝有的能安裝上有的安裝不上吧...打包機(jī)/docker 每次npm install 慢不慢?
怎么才能優(yōu)雅的開發(fā)、使用、共享 前端組件、前端代碼
場景: A-git倉庫里面有個(gè) 日歷組件,可以給B-git倉庫使用
git子倉庫 : 沒有版本,更新麻煩,要加配置
github + npm公有源: 公司代碼扔到外網(wǎng)去,有暴露敏感信息的風(fēng)險(xiǎn),且npm一旦發(fā)布就只能通過 郵件方式撤銷
gitlab+ npm私有源:gitlab是內(nèi)網(wǎng)自己的,還有個(gè)能發(fā)布的私有源,對于持續(xù)集成方面,還有更棒的優(yōu)勢,對比一下,就立判高下了
為什么要用私有源
- 加速公有npm包安裝速度
- 避免本地 npm install 指向源 還要翻墻處理,避免cnpm等其他源拉取npm包不及時(shí)的問題
- 私有源會(huì)把已經(jīng)使用的npm包緩存下來,提升個(gè)人本地/打包環(huán)境npm包的安裝速度
- 會(huì)先從官方源 獲取再緩存在私有源服務(wù)器上,私有源始終走私有源儲(chǔ)存
- 私有源包含一些 自主開發(fā)的公共包,可以在多個(gè) git倉庫 項(xiàng)目中 通過npm的方式使用
- 把公共代碼上傳到 私有源,而不是上傳到github,避免公司代碼及敏感信息的暴露,如果有開源需求,再走開源流程
- A倉庫 封裝了一個(gè) video組件,想給B倉庫使用。那就可以制作一個(gè) video組件倉庫,然后發(fā)布到 私有源上。A和B倉庫使用的時(shí)候就 npm install 組件庫,let api = require('組件庫') 啦~ 這個(gè)步驟和 發(fā)公有npm包是一模一樣的,只是發(fā)的位置不一樣而已。
準(zhǔn)備工作
- https://verdaccio.org/docs/zh-CN/authentification按照這個(gè)一步一步來就行
- 如果是本地電腦 不需要改
verdaccio的 config.yaml配置文件,如果是服務(wù)器部署,那你需要改config.yaml的配置 - 我們這里按服務(wù)器部署為例子
- 你需要先安裝上 node npm pm2
npm install -g verdaccio- 創(chuàng)建一個(gè) 非root的賬戶
- 在此賬戶下 執(zhí)行verdaccio,且找到 config.yaml文件,
- vim 修改 config.yaml,新增一行,保存
listen:
0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
- verdaccio 跑一下,顯示一下內(nèi)容就正常了

日常使用 -- 切換npm源
- 打開命令行工具
- 安裝npm切換源的快捷工具 npm/nrm:
npm install -g nrm - 輸入命令: nrm ls
- 輸入命令: nrm add 源名字 源地址
- 輸入命令: nrm use 源名字
- 輸入命令: nrm ls
- 當(dāng)時(shí)源指向哪里,前面就有個(gè)小星星

日常使用 -- 添加私有源用戶
確保你的npm源指向?yàn)?你的私有源
輸入命令: npm adduser
輸入username: 郵箱前綴
輸入password: 自定義密碼
輸入Email:郵箱
- 添加私有源用戶
注冊好賬號(hào),才能上傳 npm包
對于開發(fā)者,除了注冊賬號(hào)是根據(jù) 私有源創(chuàng)建的,和官方源賬號(hào)不同,其余操作都是相同的比如:在你項(xiàng)目的根目錄,輸入 npm publish ,提示發(fā)布成功/失敗等
對于使用者,使用的時(shí)候,npm源 指向 私有源 npm install 包名 即可 ,和正常使用無任何差異
結(jié)束
至此 就都搞定啦。
無論團(tuán)隊(duì)的開發(fā)者/使用者來說,只要把 nrm的源指向?yàn)?自己的私有源就OK了。
verdaccio通過代理的形式,把你的私有包 和 官方包 切分開。

如果有發(fā)布了包到私有源,你的私有源web頁 就是這樣的~


