CentOS 7搭建 cnpm 私有仓库

服务端

安装工具

$ npm install -g --build-from-source cnpmjs.org cnpm sqlite3

若是报错或者警告经过下面方式安装nginx

$ npm install -g --unsafe-perm --verbose --build-from-source cnpmjs.org cnpm sqlite3

配置

配置文件位于~/.cnpmjs.org/config.json中,git

{
  "bindingHost": "0.0.0.0",
  "admins": {
    "admin": "admin@example.com"
  },
  "scopes": [
    "@package"
  ],
  "registryHost": "registry.company.com"
}

bindingHost:设置0.0.0.0后,服务可外网访问
admins: 管理员配置,可多个
scopes: 包前缀,若是不是以这个前缀命名的包将不能发布,可多个
registryHost:下载包对应的服务器地址,如不配置会走默认r.cnpmjs.orggithub

更多配置参考:https://github.com/cnpm/cnpmj...web

运行

$ cnpmjs.org start

运行后默认将会开启两个端口:7001(registry)7002(web)sql

7001(registry)

用来在命令行发布,下载包等对用的远程registry地址
好比:
cnpmjs.org官方:http://r.cnpmjs.org/
npm官方:https://registry.npmjs.org/npm

7002(web)

用来在web端查看仓库信息,搜索包,包信息等
好比:
cnpmjs.org官方:https://cnpmjs.org/
npm官方:http://npmjs.com/json

将两个端口号经过nginx配置到对应域名

例如:
7001配置到registry.company.com
7002配置到npm.company.com服务器

经过 pm2 运行

上述方法在命令行退出时,会自动关闭进程,若是须要持久化运行cnpmjs.org,能够借助进程管理工具pm2工具

安装 pm2

$ npm install pm2 -g

运行

$ pm2 start `which cnpmjs.org` -- start

--能够在pm2 start的脚本后面增长参数。ui

客户端

发布包

安装并配置配置 cnpm

$ npm install cnpm -g
$ cnpm set registry http://registry.company.com

这里的registry地址为上述registryHost字段。

登陆

$ cnpm login

输入用户名、密码、邮箱登陆,为配置中admins字段

发布

进入待发布工程目录,执行:

$ cnpm publish

下载包

$ cnpm install @package/package_name
相关文章
相关标签/搜索