从0开始建立自己的私有npm组件仓库和离线仓库

什么是私有npm仓库

npm install vue

对于这个命令并不陌生,这个是发布在npmjs上的一个框架VUE,但是我们在技术沉淀中,在前端越来越工程化时,很多时候,不满足于公共仓库中的一些插件和框架,甚至UI库。
在企业级开发中,我们常常会遇到我们需要建立自己的技术沉淀,自己的UI框架,自己的一些公共方法,自己的一些解决方案
再回顾一下我们的npm install ,我们是从npmjs或者yarn的公共仓库中拉取的,但是我们想自己开发一个库,不想把代码泄漏在公共仓库中,保证了技术私有化,代码安全性,私有方案不会暴露。

前置条件

一台企业内部的服务器,用于安装verdaccio,进行npm内部源架设
(verdaccio不仅仅是一个私有npm仓库,他还能连接互联网进行npm插件缓存)
verdaccio安装教程
https://verdaccio.org/zh-CN/docs/docker

常规安装插件

npm install myui --registry http://192.168.1.1:4873/

这个命令可以安装myui库并指定我们的私有仓库,这样就可以从这台服务器安装下来我们之前上传的myui组件库;但是我们常规的node前端项目,一般是执行的npm install,此时你会发现他会把myui在npmjs仓库中寻找(lock文件删除的情况),如果没有此插件,会拉取报错404,这个问题是npm在拉取依赖的时候会在npmjs源中寻找,这个是最大优先级,那么如何才能让我们在把项目迁移到其他同事的电脑也能丝滑的拉取我们的内部依赖呢?

如何让npm i也能去丝滑的拉取我们内部依赖和外部依赖

条件1

我们从npm官方文档中可以查询一下scope文档
https://npm.nodejs.cn/cli/v10/using-npm/scope
什么是scope呢?有时候我们会发现安装一些插件的时候

npm install @vue/compiler-sfc

这儿为什么有一个@vue,我们查阅一下文档,就知道,这个本质上就是把我们的插件分组了,也就是我们有一个私有化组,这样我们的库名称就算和公共的组件冲突了也不影响我们的安装,这个scope组还有一个好处就是我们可以分流拉取依赖。
此时我们在封装npm库的时候,库的名字需要是@xpp/myui
这样我们的组件库就叫@xpp/myui了,上传到我们的verdaccio

条件2

那么我们的前端项目如何去同时从内部库和npmjs拉取依赖呢?
这儿需要了解一下.npmrc文件和.yarnrc文件
这两个文件本质的功能是一样的,就是覆盖我们的npm config和yarn config
我们在上一步已经上传了@xpp/myui库
这时我们在项目根目录添加.npmrc和.yarnrc文件
.npmrc

@xpp:registry=http://192.168.1.1:4873/

.yarnrc

xpp "http://192.168.1.1:4873/"

注意此处写法略有不同
这个功能是@xpp这个组的镜像源默认从我们的私有仓库去拉取
这时候再执行

npm install @xpp/myui

那么他就会自动从我们的私有化仓库中拉取依赖了
如果依赖里面有@xpp/myui再去执行

npm i / yarn

效果是一样的,我们公共资源的包会从npmjs中去拉取,那我们私有的库就会自动去私有库拉取

把我们的.npmrc和.yarnrc文件加入git仓库,完事

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容