用sinopia搭建内部npm服务
Posted cangqinglang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用sinopia搭建内部npm服务相关的知识,希望对你有一定的参考价值。
sinopia搭建
这里默认你已经有node环境了,执行下面命令,全局安装 sinopia
npm install -g sinopia
安装好后,执行下面命令启动 sinopia
sinopia
你会看到下面两行提示:
warn --- config file - /root/.config/sinopia/htpassw
warn --- http address - http://localhost:4873/
上面一行是 sinopia 的配置文件所在路径,下面一行是 sinopia 服务的域名和端口号
然后打开 http://localhost:4873/,如果能正常访问,说明安装成功
node服务非常脆弱,一般在实际中使用都会配合守护进程。这里我用的是 pm2 做守护进程
首先全局安装 PM2,执行下面语句:
npm install -g pm2
再执行下面语句,通过 PM2 启动 sinopia:
pm2 start `which sinopia`
pm2 start
sinopia
停止服务
pm2 stop sinopia
在 sinopia 服务上安装包 and 发布包
环境和用户问题已经解决,那么接下来我们试试在我们的服务商发布自己的包
这里推荐用 nrm 来管理 npm 的镜像地址,非常方便
首先全局安装 nrm:
npm install -g nrm
然后添加虚拟机npm 服务镜像地址:
nrm add my http://192.168.2.18:4873
使用虚拟机镜像:
nrm use my
其他常用的 nrm 命令:
nrm --help #查看 nrm 命令帮助 nrm list #列出可用的 npm 镜像地址 nrm use taobao #使用‘淘宝npm‘镜像地址
上面我们把本机的 npm 切换到虚拟机镜像后吗,用它来安装 gulp:
npm install gulp
当然,我们的服务是刚刚建好的,上面还没发布任何包,但我们依然能成功安装
因为 sinopia 发现服务中没有你要下载的包,就会到 taobao 镜像去下载
添加用户
-
$npm adduser --registry http://localhost:4873/
-
Username: clc
-
Password: clc
-
Email: (this IS public) cc
安装包没问题,然后就是发布我们自己的包了
上面已经提到如何创建用户,这里就不再细说
发布之前要用下面命令登录:
npm login
添加完用户后,可以使用npm 登陆
-
$npm login
-
Username: clc
-
Password: clc
-
Email: (this IS public) [email protected]
-
Logged in as clc on http://localhost:4873/
进入我们要发布的包根目录,然后执行初始化命令创建 package.json (已经初始化的话,跳过这步):
npm init
根据提示输入包信息,初始化完成后就可以发布了
然后在根目录执行下面命令:
npm publish
发布成功后,你就可以像安装别的包那样安装自己发布的包了
以上是关于用sinopia搭建内部npm服务的主要内容,如果未能解决你的问题,请参考以下文章