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
相關文章
相關標籤/搜索