《cnpm搭建》
# 系统环境
工具 | 版本 |
---|---|
Linux | CentOS release 7.6.1810 |
NodeJS | v14.0.0 |
npm | 6.14.4 |
mariadb | 5.5.65-MariaDB |
# 环境搭建
# nodejs安装
- 检查是否已安装
node -v
# v14.0.0
npm -v
# 6.14.4
1
2
3
4
2
3
4
- 安装
yum install -y nodejs
yum install -y gcc-c++ make
1
2
2
需要升级Node版本可以看Node版本升级
# mysql安装
CentOS 7 下 mysql 已经被 mariadb 替代。 mariadb 和 mysql 的区别不做详细介绍。下面将介绍 mariadb 的安装。
- 查看是否已安装
yum list installed mariadb*
1
- 查看有没有安装包
yum list mariadb*
rpm -qa | grep mariadb
1
2
2
- 安装 mariadb
yum -y install mariadb-server MariaDB-client
1
- 配置 utf-8 字符集
# 进入mysql配置文件
vi /etc/my.cnf
1
2
2
在[mysqld]中添加参数,使得 mariadb 服务端支持中文
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
1
2
3
2
3
- 设置 root 密码
默认情况下,新安装的 mariadb 的密码为空,在shell终端直接输入 mysql 就能登陆数据库。如果是刚安装第一次使用,使用 mysql_secure_installation
命令初始化。
mysql_secure_installation
1
设置的时候可能会报以下错误: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决方法:
进入/etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock(跟这个socket路径一样)
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 新增
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 启动:
service mariadb start
1
相关命令拓展
# 重启
service mariadb restart
# 停止
service mariadb stop
# 开机启动
chkconfig mariadb on
# 开机停止
chkconfig mariadb off
# 查看开机启动设置是否成功
chkconfig --list | grep mysql*
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 使用
用户名:root,密码:mysql
mysql -u root -p mysql
1
# 服务搭建
# 1、下载源码
git clone https://github.com/cnpm/cnpmjs.org.git
1
# 2、安装依赖
cd cnpmjs.org
npm install
1
2
2
# 3、创建数据库
# 登录
mysql -u root -p
# 进入命令行
drop database if exists cnpm_db;
create database cnpm_db;
show databases;
use cnpm_db;
# 配置sql初始化文件
source docs/db.sql;
# 查看初始化后数据表
show tables;
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
设置允许外部链接数据库
# %表示所有
grant all privileges on *.* to root@'%' identified by 'root';
# 刷新
flush privileges;
1
2
3
4
2
3
4
# 4、修改配置文件
进入 cnpmjs.org/config/index.js
- 配置数据库地址、账号、密码
- 配置admin的账号
- bindingHost 改为本机地址
- registryHost 改为 http://ip:7001
var config = {
registryPort: 7001, // 仓库端口
webPort: 7002, // web站点端口
bindingHost: '0.0.0.0', // 设置为0.0.0.0对外可访问
// 设置管理员
admins: {
// name: email
xxx: 'xxx@xxx.com'
},
// 配置数据库信息
database: {
db: 'cnpm_db',
username: 'root',
password: '123456',
dialect: 'mariadb', // 修改成对应的数据库
host: '127.0.0.1',
port: 3306,
},
// 设置私库命名空间
scopes: [ '@cute' ],
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 5、启动服务
node dispatch.js
# 或 两种方法都可以
nohup node –harmony dispatch.js &
1
2
3
2
3
# 6. 验证
- 客户端地址:http://ip:7002
- 服务地址: http://ip:7001
# 使用
# 1. 新增npm源
使用 nrm 新增 npm 源,具体使用请看:《使用nrm快速的切换npm源》
# 新增
nrm add cute http://ip:7001/
# 切换
nrm use cute
1
2
3
4
2
3
4
# 2. 创建私有测试包
mkdir cutehelloword
npm init
name: @cute/helloword
varsion: 1.0.0
1
2
3
4
2
3
4
注意: name 必须以@cute
开头,因为在配置文件中设置了scopes: [ '@cute' ]
# 3. 发布到 cnpm
# 已存在用户即登录,否则自动注册
npm login
# 发布
npm publish
1
2
3
4
2
3
4
在客户端查看验证:
# 4. 安装私有包
# 1. 项目中安装
在项目根目录中,创建.npmrc
文件,并写入以下内容:
@cute:registry=http://ip:7001
1
安装
npm install -D @cute/helloword
1
# 2. 使用 nrm 切换仓库源后安装
# 切换
nrm use cute
# 安装
cnpm install -D @cute/helloword
1
2
3
4
2
3
4
# 3. 验证
查看 package.json 文件,已经可以看到安装成功了