Node.js 性能平台新功能——模块仓库

简介: Node.js 性能平台推出的模块仓库,在完全覆盖 cnpm 私有仓库功能的基础上,提供了一套多用户隔离 + 精确权限控制的模式,能够覆盖企业开发中面临的多种场景,最关键的是这一切功能目前是免费提供的。

写在前面

受限于国内的网络环境,官方的 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 来创建一个私有模块仓库,如下图所示:
20180322100106.png

登入 Registry

Registry 创建后,将会在页面上看到你创建的私有仓库的地址,如下图所示:
20180322100650.png
使用图中提示的 npm/cnpm 命令将 npm/cnpm 客户端仓库指向这个私有模块仓库,再执行登录操作即可,其中 npm/cnpm 客户端 login 命令所需要的账户信息在 我的信息 可以看到,如下图所示:

20180322095738.png

创建 scope

接下来我们就需要在我们创建的这个私有仓库下按照业务/部门/功能等你任意希望的区分来创建 scope,点击模块仓库主页右上角的 创建新 scope 来执行创建,如下图所示:

20180322100838.png
创建 scope 成功后,我们就可以将包名对应这个 scope 的私有模块发布到这个 scope 里面,例如这里创建了名字为 @cloud 的 scope,那么我们可以执行 npm publish 命令将 @cloud/quickstart 这样名称的包到这个 scope 下。

更多功能

上面的尝试只是一个最简单的单人使用模块仓库的例子,在实际的企业开发中,必然是存在多人合作开发维护私有模块的使用场景,因此 Node.js 性能平台提供的模块仓库还提供了完整的多人协作开发模式下的使用,这一块进阶教程可以参见完整文档: 模块仓库使用指南

目前模块仓库功能正在火热公测中,欢迎广大开发者将自己的私有模块迁移过来,使用中遇到的任何问题可以加钉钉群咨询,钉钉群号:11794270。
相关实践学习
Node.js 入门教程文档
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。 V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。
目录
相关文章
|
9天前
|
JavaScript 前端开发
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
如何使用Vue和Element UI配合Node.js及multiparty模块实现图片上传并反显的功能,包括前端的Element UI组件配置和后端的Node.js服务端代码实现。
14 1
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
|
2月前
|
JavaScript 数据可视化
JS如何优雅的实现模块自动滚动展示
【8月更文挑战第22天】JS如何优雅的实现模块自动滚动展示
19 1
JS如何优雅的实现模块自动滚动展示
|
24天前
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
这篇文章介绍了在Nest.js构建应用时,如何通过事件/发布-订阅模式使应用程序更健壮、灵活、易于扩展,并简化服务间通信。文章主要围绕@nestjs/event-emitter模块展开,这是一个基于eventemitter2库的社区模块,提供了事件发布/订阅功能,使得实现事件驱动架构变得简单。文章还介绍了如何使用该模块,包括安装依赖、初始化模块、注册EventEmitterModule、使用装饰器简化监听等。最后总结,集成@nestjs/event-emitter模块可以提升应用程序的事件驱动能力,构建出更为松耦合、易扩展且高度灵活的系统架构,是构建现代、响应迅速且具有高度解耦特性的Nest.
|
1月前
|
缓存 JavaScript 前端开发
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
21 2
|
2月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
130 1
|
2月前
|
存储 缓存 JSON
Node.js有哪些模块系统
【8月更文挑战第12天】Node.js有哪些模块系统
35 3
|
2月前
|
算法 JavaScript 前端开发
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
103 1
|
2月前
|
JavaScript 前端开发
深入理解Node.js事件循环及其对后端性能的影响
【8月更文挑战第31天】 本文将带你一探Node.js的核心概念—事件循环,揭示其工作原理及如何影响后端应用的性能。我们将从基础的事件驱动模型出发,通过代码示例和性能分析,展示如何有效利用事件循环来提升应用响应速度和处理能力。
|
2月前
[译] Node 模块中的 peer dependencies 是什么?
[译] Node 模块中的 peer dependencies 是什么?
|
3月前
|
存储 JavaScript 安全
Node中的AsyncLocalStorage 使用问题之AsyncLocalStorage与node:async_hooks模块的问题如何解决
Node中的AsyncLocalStorage 使用问题之AsyncLocalStorage与node:async_hooks模块的问题如何解决
下一篇
无影云桌面