随着代码的积累,感觉有必要自己搭建一个npm服务,对自己的代码库进行管理。
为什么选sinopia,之前有 仁兄使用Kappa 搭建私有npm私有库,看上去比较麻烦,还需要依赖CouchDB数据库。参考 https://segmentfault.com/a/1190000000491162
我去强大的github上搜索了一下,发现了sinopia,纯nodejs解决方案,不需要什么依赖的软件包。果然是简单有效的办法,于是根据教程尝试了一下,基本没遇到什么坎就弄好了。
github地址:https://github.com/rlidwka/sinopia
首先安装sinopia
$ npm install -g sinopia
启动sinopia
$ sinopia
默认启动端口4873,通过http://localhost:4873/可以浏览你上传的包
在npm中使用新的服务,在通过npm安装依赖包的时候服务器会优先使用服务上已经上传的包,如果找不到会使用公共的npm registry,省去的来回切换的麻烦。
$npm set registry http://localhost:4873/
但这样只能通过本机进行访问,如何通过远程可以访问你的npm服务器呢?
看一下sinopia命令帮助
$ sinopia -h
通过-l可以指定主机和端口
重新启动一下:
$ sinopia -l 100.100.100.100:8000
ip为举例,可以是你的主机的对外ip,这样就可以通过ip来访问你的npm服务器了
另外推荐一下管理registry的工具nrm
$ npm install -g nrm $ nrm add mynpm http://100.100.100.100:8000 $ nrm use mynpm
列出所有的本地registry
$ nrm ls
切换回公共的registry
$ nrm use npm
完成了服务器的搭建,我们就可以发布自己的nodejs库到服务器上了。
首先要创建一个用户
$ npm adduser --registry http://100.100.100.100:8000
输入用户名,密码,邮箱用户创建完毕。
然后进入你要上传的代码目录,执行初始化。
$ npm init
这个过程中要输入项目名,版本号,作者,开源协议等信息,自动生成package.json文件。
初始化完成了执行发布命令
$ npm publish
看到发布成功的提示,ok,第一个包就这样发布成功了!
浏览器访问http://100.100.100.100:8000可以看到我们刚刚发布的包了,通过readme.md可添加包的使用说明和用例代码。
接下来我们团队会把自己之前积累的一些代码逐步整理并形成npm包,放在npm服务器上并考虑开源。