需求 公司出于自身隐私保护需要,不想把自己的代码开源到包管理区,但是又急需一套完整包管工具,来管理越来越多的组件、模块和项目。对于前端,最熟悉的莫过于npm,bower等;但是bower的市场兼容性明显没有npm强壮,加之commonjs规范的日益成熟。npm应该是前端包管理的不二选择。 公司对于搭建本地私有npm库有如下要求: 私有包托管在内部服务器中 项目中使用了公共仓库上的公共包,也使用了内部服务器上的私有包 希望下载的时候,公共包走公共仓库,私有包走内部服务器的私有仓库 服务器硬盘有限,希望只缓存下载过的包,而不是全部同步。 对于下载,发布npm包有对应的权限管理,安装方便,配置简单,依赖少。 关于sinopia? Sinopia 是一个零配置的私有的带缓存功能的npm包管理工具,作者是是rlidwka,一个大神,也是一只猫~ 往社区内贡献过很多代码,包括 jshttp, markdown-it 等等,也是 Node.js 核心代码库的活跃贡献者。 使用sinopia,你不用安装CouchDB或MYSQL之类的数据库,Sinopia有自己的迷你数据库,如果要下载的包不存在,它将自动去你配置的npm地址上去下载,而且硬盘中只缓存你现在过的包,以节省空间。 为什么选择sinopia sinopia有以下几个优势值得关注: 不同步拉取npm库,占据大量硬盘,没有硬盘被撑爆的问题; 安装配置极其简单,不需要数据库; 支持配置上游registry配置,一次拉取即缓存; 支持forever及pm2守护进程管理; 其他方法 使用 git+ssh 这种方式直接引用到 GitHub 项目地址…