写在前面
受限于国内的网络环境,官方的 npm 仓库安装速度不尽人意,在此基础上,阿里巴巴提供了 cnpm 完全镜像仓库来满足国内的开发者安装 npm 包的需求。并且 cnpm 的镜像仓库源代码是开源的,所以许多有私有模块发布安装需求企业纷纷使用开源的 cnpm 来搭建企业自己的私有镜像仓库。
模块仓库
Node.js 性能平台同样基于 cnpm 开发,向广大开发者免费提供企业私有仓库:
模块仓库,目的是简化 Node.js 开发上的一些环境部署工作,以一套底层性能监控 + 上层应用框架(推荐
Egg.js,一起搭配味更佳)+ 模块仓库作为解决方案,让开发者能更聚焦于业务本身。
相比企业使用开源的 cnpm 搭建的私有仓库,我们提供的模块仓库具有的一些优势如下:
- 节省企业运营开支:视企业开发规模搭建私有仓库需要长期维护 1 台以上的物理机/ECS,以及对应的存储空间
-
覆盖场景更广:如果存在一些企业外部的合作伙伴共享某些私有模块,自行搭建的私有仓库无法满足
-
精确的权限控制:cnpm 私有仓库无法精确到每一个 scope 的用户下载/发布权限粒度
可以看到,Node.js 性能平台推出的模块仓库,在完全覆盖 cnpm 私有仓库功能的基础上,提供了一套多用户隔离 + 精确权限控制的模式,能够覆盖企业开发中面临的多种场景,最关键的是这一切功能目前是免费提供的。
下面我们以一个简单的例子来体验下使用 Node.js 性能平台提供的模块仓库功能来发布一个私有包的过程,有兴趣的小伙伴可以跟着尝试一番
尝试一番
创建 Registry
第一次访问
模块仓库 主页的话,需要先进行 registry 的创建,这里的 registry 即你的私有仓库,此时可以点击页面右上角的
创建新 registry 来创建一个私有模块仓库,如下图所示:
登入 Registry
Registry 创建后,将会在页面上看到你创建的私有仓库的地址,如下图所示:
使用图中提示的 npm/cnpm 命令将 npm/cnpm 客户端仓库指向这个私有模块仓库,再执行登录操作即可,其中 npm/cnpm 客户端 login 命令所需要的账户信息在
我的信息 可以看到,如下图所示:
创建 scope
接下来我们就需要在我们创建的这个私有仓库下按照业务/部门/功能等你任意希望的区分来创建 scope,点击模块仓库主页右上角的
创建新 scope 来执行创建,如下图所示:
创建 scope 成功后,我们就可以将包名对应这个 scope 的私有模块发布到这个 scope 里面,例如这里创建了名字为
@cloud 的 scope,那么我们可以执行
npm publish 命令将
@cloud/quickstart 这样名称的包到这个 scope 下。
更多功能
上面的尝试只是一个最简单的单人使用模块仓库的例子,在实际的企业开发中,必然是存在多人合作开发维护私有模块的使用场景,因此 Node.js 性能平台提供的模块仓库还提供了完整的多人协作开发模式下的使用,这一块进阶教程可以参见完整文档:
模块仓库使用指南。
目前模块仓库功能正在火热公测中,欢迎广大开发者将自己的私有模块迁移过来,使用中遇到的任何问题可以加钉钉群咨询,钉钉群号:11794270。