CNPM私有库服务器架设及团队开发方案

导读:

1.该方案涉及到企业内部的CNPM私有库服务器配置及架设
2.私有库npm包发布权限管理,只限管理员发布
3.阿里云线上服务器私有库部署,nginx代理路由配置,内外网包管理通信
4.npm包管理


一、部署所需要的工具

node(* 最新版10.14.2)、npm(* 最新版6.4.1)、nrm、mysql、nginx、git、github( gitlib )、线上服务器

注: node\npm版本必须和其他服务器的node\npm版本一致,否则安装依赖将会失败

二、安装部署

1.将cnpmjs.org克隆到本地,安装依赖

git clone https://github.com/cnpm/cnpmjs.org.git
cd cnpmjs.org
cnpm install

2.修改配置文件

(1)去到目录config/ 下面编辑 index.js

vim index.js

(2)在命令模式下查找字段:/enableCluster 修改为: enableCluster: true
(3)查找字段:/admins: 修改为如下:

  // default system admins
  admins: {
    // name: email
    fengmk2: '[email protected]',
    admin: '[email protected]',  // 修改成自己的管理员邮箱 密码默认admin
    dead_horse: '[email protected]',
  }

(3)查找字段 / database 修改如下:

 database: {
    db: '自定义的给cnpm私有库使用的database',
    username: '数据库账号',
    password: '数据库密码',

    // the sql dialect of the database
    // - currently supported: 'mysql', 'sqlite', 'postgres', 'mariadb'
    dialect: 'mysql',

// ...
  },

(4)查找字段:/registryHost 修改如下:

registryHost: 'nginx访问地址'  // nginx 代理访问127.0.0.1:7001的地址

(5)查找字段:/enablePrivate 修改如下:

enablePrivate: true // 设置只有管理员才有权限发布

(6)查找字段:/scopes 修改如下:

scopes: ['@xx', '@xx-company' ] // npm企业私有scope


3. mysql数据库导入db.sql文件

use ‘在config/index.js中配置的db值’;

sourre ‘docs目录下的db.sql文件’

4. 启动服务

去到cnpmjs.org/目录下:执行命令 node dispatch.js ( 最好使用 nodemon )

启动成功后:

--- 127.0.0.1:7002  # 文档页面地址
--- 127.0.0.1:7001  # cnpm库地址

5.配置nginx服务(1)在nginx.conf中新增如下:
 

server {
    listen       8082;
    server_name  localhost;  
 
    location / {
        proxy_pass  http://127.0.0.1:7002;
    }
}


server {
    listen       8081; 
    server_name  localhost;  
 
    location / {
        proxy_pass  http://127.0.0.1:7001;
    }
}

(2)重启nginx服务:nginx -s reload 

参考下面个人服务已配置成功的测试环境:

http://47.107.145.109:8081/
http://47.107.145.109:8082/


注意:不要轻易设置/...的代理,这样设置发布npm包会出现路径问题,且会丢失scope


三、测试以及使用 


1.全局安装仓库管理工具nrm

cnpm install -g nrm

2.新增公司仓库地址

nrm add company_registry http://47.107.145.109:8081/  # 这里的地址换成nginx代理127.0.0.1:7001的地址

3.使用company_registry仓库

nrm use company_registry

4.拉取私有仓库的npm包

npm install @xx-company/xxxx --save

5.发布npm包

只能管理员账号,默认:账号/admin  密码/admin  邮箱/[email protected]

且每次发布都需要更新版本号

注,以后所有走私有cnpm服务的服务器上的cnpm必须修改为npm 命令,不然会拉取不到私有cnpm的包

猜你喜欢

转载自blog.csdn.net/WU5229485/article/details/85064847
今日推荐