手把手教你搭建一个私有化的npm

2,726 阅读1分钟

安装步骤

  • mysql安装
  • cnpm安装
  • 功能验证
  • npm包发布

mysql安装

备注

在mac下,安装mysql后,在命令行中找不到时,执行一下命令。

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

cnpm安装

  • 下载cnpm
# 1. clone from github
$ git clone git://github.com/cnpm/cnpmjs.org.git

# 2. 进入cnpmjs.org, 安装依赖
$ cd cnpmjs.org
$ npm install 
  • 修改config配置 为防止误操作建议不要修改config/index.js。我们在config目录下新建index.js
vim config/config.js
module.exports = {
 debug: false,
 database: {
   db: 'cnpmjs', // 数据库名,默认为cnpmjs_test
   host: '127.0.0.1', // 服务器地址
   port: 3306, // 端口
   username: 'root', // 用户名,
   password: '12345678', // 对于cento或ubuntu如果用root用户名连接数据库,这里请设置密码为空.非root请正常填写
   dialect: 'mysql' // 使用mysql,默认为sqlite
 },
 admins: {
     admin: 'admin@cnpmjs.org' // 管理员权限
 },
 scopes: ['@ttt'], // 私有包必须依附于 scope 下, 如@ttt/t1
 registryHost: '127.0.0.1:7001', //替换服务器ip
 bindingHost: '0.0.0.0'
};
  • 配置mysql
# 在当前cnpmjs.org目录下
#create mysql tables,在cnpm 目中进行启动mysql
$ mysql -u root -p

mysql> create database cnpmjs
mysql> use cnpmjs;

mysql> source docs/db.sql
  • 启动服务
npm start/restart/stop

功能验证

  • 安装nrm 在验证之前推荐安装一个 npm 源管理模块 nrm ,有了它我们可以在各种源之间自由切换。
npm i nrm -g
  • 添加私有源 安装成功后新增我们自己的私有源到nrm源列表中。
# 替换为实际的服务器地址
nrm add tt http://127.0.0.1:7001
  • 切换到私有源
nrm use tt

查看所有源

% nrm ls

  npm -------- https://registry.npmjs.org/
  yarn ------- https://registry.yarnpkg.com/
  cnpm ------- http://r.cnpmjs.org/
  taobao ----- https://registry.npm.taobao.org/
  nj --------- https://registry.nodejitsu.com/
  npmMirror -- https://skimdb.npmjs.com/registry/
  edunpm ----- http://registry.enpmjs.org/
* tt --------- http://localhost:7001/

cnpm包发布

  • 注册用户 设置用户名,密码和email
npm adduser
  • 登录仓库 填写好用户名,密码和email
npm login
  • 发布私有包 登录成功后,发布 npm ,在已准备好的模块目录执行:
npm publish

发布成功后,打开http://localhost:7002/ 即可查看到刚刚发布的包。

  • 安装私有包 使用正常的npm install命令即可。

Q&A