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绕过了这些,但仍提供很好的性能。
目录
相关文章
|
1天前
|
JavaScript 前端开发 测试技术
编写JavaScript模块化代码主要涉及将代码分割成不同的文件或模块,每个模块负责处理特定的功能或任务
【5月更文挑战第10天】编写JavaScript模块化代码最佳实践:使用ES6模块或CommonJS(Node.js),组织逻辑相关模块,避免全局变量,封装细节。利用命名空间和目录结构,借助Webpack处理浏览器环境的模块。编写文档和注释,编写单元测试以确保代码质量。通过这些方法提升代码的可读性和可维护性。
7 3
|
4天前
|
数据可视化 JavaScript NoSQL
搭建接口平台YApi详解(含搭建node环境)
搭建接口平台YApi详解(含搭建node环境)
20 0
|
11天前
|
消息中间件 监控 JavaScript
Node.js中的进程管理:child_process模块与进程管理
【4月更文挑战第30天】Node.js的`child_process`模块用于创建子进程,支持执行系统命令、运行脚本和进程间通信。主要方法包括:`exec`(执行命令,适合简单任务)、`execFile`(安全执行文件)、`spawn`(实时通信,处理大量数据)和`fork`(创建Node.js子进程,支持IPC)。有效的进程管理策略涉及限制并发进程、处理错误和退出事件、使用流通信、谨慎使用IPC以及监控和日志记录,以确保应用的稳定性和性能。
|
12天前
|
缓存 JavaScript 前端开发
Node.js的模块系统:CommonJS模块系统的使用
【4月更文挑战第29天】Node.js采用CommonJS作为模块系统,每个文件视为独立模块,通过`module.exports`导出和`require`引入实现依赖。模块有独立作用域,保证封装性,防止命名冲突。引入的模块会被缓存,提高加载效率并确保一致性。利用CommonJS,开发者能编写更模块化、可维护的代码。
|
15天前
|
SQL 前端开发 JavaScript
前端vite+vue3结合后端node+koa——实现代码模板展示平台(支持模糊搜索+分页查询)
前端vite+vue3结合后端node+koa——实现代码模板展示平台(支持模糊搜索+分页查询)
32 4
|
26天前
|
JavaScript API
node.js之模块系统
node.js之模块系统
|
29天前
|
Web App开发 JavaScript 前端开发
【Node系列】node核心模块util
Node.js的核心模块util为开发者提供了一些常用的实用工具函数。这些函数能够很方便地进行对象的继承、类型判断以及其他工具函数的实现。
22 2
|
29天前
|
域名解析 网络协议 JavaScript
【Node系列】node工具模块
Node.js有多个内置的工具模块,这些模块提供了用于执行各种任务的功能。
24 2
|
29天前
|
缓存 并行计算 JavaScript
【Node系列】模块系统
Node.js 的模块系统是其核心特性之一,允许开发者编写可复用的代码,并通过简单的导入和导出机制来共享和使用这些模块。
20 3
|
1月前
|
小程序 开发者
微信小程序“Error: xxx.js 已被代码依赖分析忽略,无法被其他模块引用”报错?
微信小程序“Error: xxx.js 已被代码依赖分析忽略,无法被其他模块引用”报错?