阿里开源项目rap2在Mac平台的搭建

1,447 阅读3分钟

环境的搭建

  1. Node.js 8.9.4+
  2. Mysql 5.7+
  3. Redis 4.0+ (最好别设置密码)

后端 rap2-delos 的部署

1.获取源代码

   git clone https://github.com/thx/rap2-delos.git

2.创建数据库

  • Mac or Linux
mysql -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci';
  • Windows 环境 (进入mysql命令后执行)
CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3.配置文件

目录:rap2-delos/src/config

文件:config.dev.ts;其中dev,表示开发环境,其他同理

修改:config.dev.ts文件中db对象中username,password参数与本地或者开发环境的数据库信息匹配

4.启动项目

npm install

5.初始化数据库

npm run create-db

6.编译启动项目 执行mocha测试用例和js代码规范检查

npm run check

7.运行项目

  • 开发模式
启动开发模式的服务器 监视并在发生代码变更时自动重启

npm run dev
  • 生产模式
启动生产模式服务器

npm start

看到浏览器中如下提示,表示服务端delos已经部署成功

RAP2后端服务已启动,请从前端服务(rap2-dolores)访问。 RAP2 back-end server is started, please visit via front-end service (rap2-dolores).

前端 rap2-dodores 的部署

# 拉取代码
git clone https://github.com/thx/rap2-dolores.git
# 切换目录
cd  rap2-dolores
# 初始化
npm install

下面这步可以不做,直接配置正式。

# 开发模式配置**(开发配置可以不做)
    配置文件路径:/src/config/config.dev.js
    module.exports = {
      serve: 'http://127.0.0.1:8080',
      keys: ['some secret hurr'],
      session: {
        key: 'koa:sess'
      }
    }
    更改serve  字段
    改成我们的后端访问地址。 注意加 http://
    
    # test cases 测试用例
    npm run test
    
    # will watch & serve automatically 会自动监视改变后重新编译
    npm run dev

正式配置,必须配置

# 正式配置
配置文件路径:/src/config/config.prod.js
module.exports = {
  serve: 'http://127.0.0.1:8080',
  keys: ['some secret hurr'],
  session: {
    key: 'koa:sess'
  }
}
更改serve  字段
改成我们的后端访问地址,访问地址直接使用ip,不要使用127.0.0.1。 注意加 http://,

#  编译React生产包
npm run build

#  安装serve
npm install -g serve

# 运行 
serve -s ./build -p 80
-p 为指定端口
# 后台运行
nohup  serve -s ./build -p 80  &

rap2使用方法

这里我提供两种使用方法,大家根据自己的项目自行决定使用哪种方法。

1.前端:使用webpack-dev-server

proxy: {
  "/api": {
    target: "http://10.96.78.185:3000/",
    secure: false,  #是否支持https
    changeOrigin: true
  }
}

2.后端:http-proxy-middleware 当后端使用node 的express框架时,可用如下方法,使用时,请先下载http-proxy-middleware模块。

var express = require('express');
var proxy = require('http-proxy-middleware');

var app = express();

app.use('/api', proxy({target: 'http://localhost:3001/', changeOrigin: true}));
app.listen(3000);

后期改进

后期打算将rap2实现sso接入,sso广泛应用于大型企业中。sso的好处是,用户只需登陆一个子系统,在进入其它子系统时,只需验证,而无需重复登陆,这样做可以极大的提升办公效率。

部署时遇见的问题

1.Can't connect to local MySQL server through socket '/tmp/mysql.sock'

错误原因:mysql服务未正常启动, 重启mysql服务即可(mysql.server start)

2. NOAUTH Authentication required 错误原因:项目中redis的密码和redis数据库的密码不匹配,修改项目中redis数据库相关信息。
3. npm install 时出错 解决方法:npm install --unsafe-perm

参考文章

接口文档管理神器RAP2安装和部署

非官方rap2-delos部署文档

rap2 Github 源码