公司級前端組件共享協(xié)作方式 - NPM私有源-verdaccio搭建

為什么要共享組件? 都2019年了...還ctrl+c > ctrl+v,多處維護嗎?
為什么要搭私有源? 公司代碼扔到github/npm官方源上不好吧...有的小伙伴cnpm,有的小伙伴npm ,安裝有的能安裝上有的安裝不上吧...打包機/docker 每次npm install 慢不慢?

怎么才能優(yōu)雅的開發(fā)、使用、共享 前端組件、前端代碼

場景: A-git倉庫里面有個 日歷組件,可以給B-git倉庫使用
git子倉庫 : 沒有版本,更新麻煩,要加配置
github + npm公有源: 公司代碼扔到外網(wǎng)去,有暴露敏感信息的風險,且npm一旦發(fā)布就只能通過 郵件方式撤銷
gitlab+ npm私有源:gitlab是內(nèi)網(wǎng)自己的,還有個能發(fā)布的私有源,對于持續(xù)集成方面,還有更棒的優(yōu)勢,對比一下,就立判高下了

為什么要用私有源

  1. 加速公有npm包安裝速度
  2. 避免本地 npm install 指向源 還要翻墻處理,避免cnpm等其他源拉取npm包不及時的問題
  3. 私有源會把已經(jīng)使用的npm包緩存下來,提升個人本地/打包環(huán)境npm包的安裝速度
  4. 會先從官方源 獲取再緩存在私有源服務(wù)器上,私有源始終走私有源儲存
  5. 私有源包含一些 自主開發(fā)的公共包,可以在多個 git倉庫 項目中 通過npm的方式使用
  6. 把公共代碼上傳到 私有源,而不是上傳到github,避免公司代碼及敏感信息的暴露,如果有開源需求,再走開源流程
  7. A倉庫 封裝了一個 video組件,想給B倉庫使用。那就可以制作一個 video組件倉庫,然后發(fā)布到 私有源上。A和B倉庫使用的時候就 npm install 組件庫,let api = require('組件庫') 啦~ 這個步驟和 發(fā)公有npm包是一模一樣的,只是發(fā)的位置不一樣而已。

準備工作

  1. https://verdaccio.org/docs/zh-CN/authentification按照這個一步一步來就行
  2. 如果是本地電腦 不需要改 verdaccio的 config.yaml配置文件,如果是服務(wù)器部署,那你需要改 config.yaml的配置
  3. 我們這里按服務(wù)器部署為例子
  4. 你需要先安裝上 node npm pm2
  5. npm install -g verdaccio
  6. 創(chuàng)建一個 非root的賬戶
  7. 在此賬戶下 執(zhí)行verdaccio,且找到 config.yaml文件,
  8. vim 修改 config.yaml,新增一行,保存
listen:
  0.0.0.0:4873              # listen on all addresses (INADDR_ANY)
  1. verdaccio 跑一下,顯示一下內(nèi)容就正常了
齊活~

日常使用 -- 切換npm源

  1. 打開命令行工具
  2. 安裝npm切換源的快捷工具 npm/nrm: npm install -g nrm
  3. 輸入命令: nrm ls
  4. 輸入命令: nrm add 源名字 源地址
  5. 輸入命令: nrm use 源名字
  6. 輸入命令: nrm ls
  7. 當時源指向哪里,前面就有個小星星
nrm切換私有源

日常使用 -- 添加私有源用戶

  1. 確保你的npm源指向為 你的私有源

  2. 輸入命令: npm adduser

  3. 輸入username: 郵箱前綴

  4. 輸入password: 自定義密碼

  5. 輸入Email:郵箱

  6. 添加私有源用戶
  7. 注冊好賬號,才能上傳 npm包

  8. 對于開發(fā)者,除了注冊賬號是根據(jù) 私有源創(chuàng)建的,和官方源賬號不同,其余操作都是相同的比如:在你項目的根目錄,輸入 npm publish ,提示發(fā)布成功/失敗等

  9. 對于使用者,使用的時候,npm源 指向 私有源 npm install 包名 即可 ,和正常使用無任何差異

結(jié)束

至此 就都搞定啦。
無論團隊的開發(fā)者/使用者來說,只要把 nrm的源指向為 自己的私有源就OK了。
verdaccio通過代理的形式,把你的私有包 和 官方包 切分開。


verdaccio的代理模式

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


私有源web頁

私有源詳情頁
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,953評論 6 342
  • 近來自己的懶癌又發(fā)作了,最明顯的表現(xiàn)就是越來越疏于對戰(zhàn)友作業(yè)的點評。今天反思自己,發(fā)現(xiàn)自己不僅不點評,而且還沒了內(nèi)...
    俞燕文閱讀 221評論 0 1
  • J2SE篇幅 1.Java里頭的多態(tài)是什么意思? 首先必須要有繼承或者實現(xiàn),其次是要有方法的重寫,最后一個是父類引...
    tgcity閱讀 831評論 0 0
  • 文/歸海無期 浮世三千百態(tài)生, 春風化雨潤華榮。 閑話花邊無捆綁, 多想, 何來眾口鑠金聲。 顛倒是非強辯解, 成...
    歸海無期閱讀 199評論 0 0