《cnpm搭建》


2020-08-11 上次更新时间:4/29/2022, 9:34:08 AM 0 javascript

# 系统环境

工具 版本
Linux CentOS release 7.6.1810
NodeJS v14.0.0
npm 6.14.4
mariadb 5.5.65-MariaDB

# 环境搭建

# nodejs安装

  1. 检查是否已安装
node -v
# v14.0.0
npm -v
# 6.14.4
1
2
3
4
  1. 安装
yum install -y nodejs
yum install -y gcc-c++ make
1
2

需要升级Node版本可以看Node版本升级

# mysql安装

CentOS 7 下 mysql 已经被 mariadb 替代。 mariadb 和 mysql 的区别不做详细介绍。下面将介绍 mariadb 的安装。

  1. 查看是否已安装
yum list installed mariadb*
1
  1. 查看有没有安装包
yum list mariadb*
rpm -qa | grep mariadb
1
2
  1. 安装 mariadb
yum -y install mariadb-server MariaDB-client
1
  1. 配置 utf-8 字符集
# 进入mysql配置文件
vi /etc/my.cnf
1
2

在[mysqld]中添加参数,使得 mariadb 服务端支持中文

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
1
2
3
  1. 设置 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
  1. 启动:
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
  1. 使用

用户名: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

# 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

设置允许外部链接数据库

# %表示所有
grant all privileges on *.* to root@'%' identified by 'root';
# 刷新
flush privileges;
1
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

# 5、启动服务

node dispatch.js
# 或 两种方法都可以
nohup node –harmony dispatch.js &
1
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. 创建私有测试包

mkdir cutehelloword
npm init
name: @cute/helloword
varsion: 1.0.0
1
2
3
4

注意: name 必须以@cute开头,因为在配置文件中设置了scopes: [ '@cute' ]

# 3. 发布到 cnpm

# 已存在用户即登录,否则自动注册
npm login
# 发布
npm publish
1
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

# 3. 验证

查看 package.json 文件,已经可以看到安装成功了

上次更新时间: 4/29/2022, 9:34:08 AM