- 7
- 0
- 约3.92千字
- 约 55页
- 2016-01-19 发布于山西
- 举报
3. 企业级 npm 服务在阿里的实践
企业级 NPM 服务在阿里的实践
何翊宇(不四)
dead-horse
deadhorse_busi
2B码农死⼩⻢
数据魔方
淘宝时光机
我的支付宝
天猫首页
• 淘宝收藏夹
• 淘宝指数
• 天猫移动版首页
• …
什么是 NPM?
模块管理工具
模块中心仓库
模块查询网站
为什么需要私有NPM?
• 快速稳定的中心仓库服务
• 共享私有模块
• 保证对所有模块的可控性
• 文档的集中展示
git
• 需要开放所有仓库的访问权限
• 不支持 semver 版本化区间
• 代码可能随意被覆盖
到底需要什么?
• 一个快速 、稳定 ,可以发布私有模块的中心仓库
• 模块查询,文档浏览的网站
• 定制化、更友好的客户端
动手!
基于 CouchDB
full sync
NPM Couch
publish install publish
install install
request publish
User Admin
• 无法自动同步(网络原因)
• couchDB 不稳定,难维护
• 难以定制化实现权限接入等其他功能
• 缺少模块搜索和文档托管页面
package.json *.tgz
P o w e r e d by
保持 NPM 接口不变
MySQL + CDN
可水平扩展
CNPM v0
full sync CNPM
NPM
v0
install
publish request sync publish
install install
request publish
User Admin
全量同步
• 每隔十分钟 自动同步一次
• 手动通过 cnpm sync 命令行工具同步
• 安装不存在的版本,自动触发同步
• web 页面点击同步按钮
遗留问题
• 发布的私有模块与公共模块冲突
• 无法准确知道模块由谁发布
• NPM@2 客户端工具支持带有命名空间
• CNPM registry 增加了命名空间支持
• 所有的私有模块只允许发布到指定命名空间
• CNPM 支持接入自定义用户系统
• npm 的请求可以接入企业内部用户系统
• npm adduser 实名认证
CNPM v1
full sync CNPM
NPM
您可能关注的文档
- 【热门精选】-基于排队论的港口运输装卸服务系统优化方法研究.pdf
- 【三联·哈佛燕京】第一辑.公共理性与现代学术.pdf
- 【数据附录】5大消费群落购车心态与行为数据细读.pdf
- 【小猫笔记】2013-02-01:2013赛季段波yy讲民法--民法思维与请求权基础(上)(总第008).pdf
- 【小猫笔记】2013-03-01:2013赛季段波yy讲民法--民法思维与请求权基础(下)(总第009).pdf
- 【小猫笔记】2013-03-23:2013赛季段波yy讲民法--请求权基础理论与新增立法解读(总第010).pdf
- 【小猫笔记】2013-03-29:2013赛季段波yy讲民法--请求权基础理论与新增立法解读 (二)(总第011).pdf
- 【学术前沿】法国1968:终结的开始【法】夸特罗其等编.pdf
- 【学术前沿】现代世界体系的混沌与治理乔万尼.pdf
- 【学术前沿】真之追求【美】w·v·奎因.pdf
原创力文档

文档评论(0)