网上找到的三种搭建搭建企业私有registry方式
一、CouchDB+ npm-registry-couchapp+ kappa(官网提供的方法https://docs.npmjs.com/misc/registry)
https://github.com/npm/npm-registry-couchapp
但是npm-registry-couchapp说不会接受任何pull请求,也不会对此代码库进行任何更改。
相关的实现与资料有
http://ju.outofmemory.cn/entry/108287
二、 cnpm(淘宝镜像搭建,数据库是mysql,最新commit是17年一月)
https://github.com/cnpm/cnpmjs.org
相关实践
https://zhuanlan.zhihu.com/p/20814612
http://blog.fens.me/nodejs-cnpm-npm/
另外 有关为什么有cnpm我看到有一篇淘宝的ppt
http://deadhorse.me/slides/npm-enterprise-in-ali.pdf。
https://www.youtube.com/watch?v=tUm8ak5an-4
http://2014.jsdc.tw/talks/mk2.pdf
三、sinopia
https://github.com/rlidwka/sinopia
sinopia 的更新机制,metadata 是采用 TTL 的方式缓存的,默认缓存时间只有两分钟,两分钟后再次请求同一个包的 metadata 会再次向源去请求最新的信息,虽然 timeout 的话也会返回原本的请求,但我感觉去源取信息太频繁了,而且也绑定在几乎每个请求上(2m 缓存对使用不频繁的小团队根本没解决多少问题啊),所以对时间和网络请求上都会有一些浪费不够合理。另外原版的 sinopia 已经早不维护了,似乎作者不见了踪影(来自https://zhuanlan.zhihu.com/p/20715004