CNPM私有库服务器架设及团队开发方案
导读:1.该方案涉及到企业内部的CNPM私有库服务器配置及架设2.私有库npm包发布权限管理,只限管理员发布3.阿里云线上服务器私有库部署,nginx代理路由配置,内外网包管理通信4.npm包管理一、部署所需要的工具 node(* 最新版10.14.2)、npm(* 最新版6.4.1)、nrm、mysql、nginx、git、github( gitlib )、线上服务器...
导读:
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: 'fengmk2@gmail.com',
admin: 'admin@admin.com', // 修改成自己的管理员邮箱 密码默认admin
dead_horse: 'dead_horse@qq.com',
}
(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 邮箱/admin@admin.com
且每次发布都需要更新版本号
注,以后所有走私有cnpm服务的服务器上的cnpm必须修改为npm 命令,不然会拉取不到私有cnpm的包
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)