frj-comall-backend-builder-workspace
v1.0.1
Published
本项目包含「标准后台重构」工作中的前端部分。该项目旨在提供一种可配置化的方式使得能够基于客户需求快速开发后台产品,降低开发及维护成本。
Downloads
3
Readme
标准后台核心仓库
本项目包含「标准后台重构」工作中的前端部分。该项目旨在提供一种可配置化的方式使得能够基于客户需求快速开发后台产品,降低开发及维护成本。
标准后台的各子项目发布在@comall-backend-builder
命名空间下,其中包含:
创建项目
如果你之前没有配置过,那么你应该先为 npm 或 yarn 配置私有仓库源
# 安装 create-react-app
$ yarn global add create-react-app
# 查看安装状态
$ create-react-app -V
3.0.1
# 查看脚手架最新版本
$ npm view @comall-backend-builder/scaffold versions
[ '2.5.0', '3.0.0' ]
# 创建项目,使用最新版本脚手架
$ create-react-app 项目名称 --scripts-version @comall-backend-builder/[email protected]
主要依赖模块
- react >= 16.0.0
- react-dom >= 16.0.0
- lodash >= 4.17.0
- redux = 3.7.2
- redux-saga = 0.16.0
- react-redux = 5.0.6
- react-router-dom = 4.2.2
- immer = 1.2.1
- antd = 3.4.3
使用
引入模块
import { builder } from 'comall-backend-builder';
初始化配置信息
配置信息结构为 { apiRoot, entities, components, routes }
,详见 wiki 。
配置中若使用了自定义的组件、类型或加载器,需在初始化配置信息前注册。
不支持重复初始化。
builder.init(config);
渲染生成的系统
ReactDOM.render(<builder.component />, document.getElementById('app'));
动态注册配置信息
已有路由中若存在与新路由中相同 path 的节点,会进行节点子路由合并,新路由节点不会替换已有路由节点。
/**
* @param {object} config 配置文件
*/
builder.registerConfig(config);
注册自定义组件
/**
* @param {string} name 组件名称
* @param {Component} component 组件类定义
*/
builder.registerComponent(name, component);
注册自实体
/**
* @param {string} name 实体名称
* @param {object} desc 实体的描述信息
*/
builder.registerEntity(name, desc);
注册自定义类型
/**
* @param {string} name 类型名称
* @param {Type} type 类型实例
*/
builder.registerType(name, type);
注册自定义加载器
/**
* @param {string} apiPath 加载器处理的 url,不包含 /loader/ 前缀
* @param {object} loader 加载器定义
*/
builder.registerLoader(apiPath, loader);
注册自定义 Saga
/**
* @param {function*} saga 初始化生成器
*/
builder.registerSaga(saga);
获取和修改全局配置
import { globalConfig } from 'comall-backend-builder';
globalConfig.set('api.root', 'YOUR_API_ROOT');
let dateFormat = globalConfig.get('format.date');
启用请求签名特性
import { globalConfig } from 'comall-backend-builder';
globalConfig.set('features.requestSign', true);
globalConfig.set('api.key', 'YOUR_API_KEY');
globalConfig.set('api.token', 'YOUR_API_TOKEN');
启用多语言特性
import { globalConfig } from 'comall-backend-builder';
globalConfig.set('features.i18n', true);
注册新语言信息
/**
* 注册新语言信息,当语言已存在时,新注册的语言信息会合并至旧语言信息中
* 语言信息结构 { id, name, momentLocale, antdLocale, context }
* @param {object} languagePackage 语言信息
*/
builder.registerLanguage(languagePackage);
配置文件中使用多语言特性
配置文件中可使用 << >>
进行多语言文本的插值,根据表达式路径从当前语言上下文中取值。
{
"components": {
"Example": {
"component": "text",
"text": "<<components.Example.text>>"
}
}
}
开发
- 安装
node.js
版本10.20.1
; - 安装
yarn
,在命令行中执行npm install -g yarn
; - 在命令行中执行
npm config set registry http://nexus3.km.co-mall/repository/npm/
;
启动开发环境
- 在命令行中
cd
到项目根目录; - 执行
yarn install
安装依赖库; - 执行
yarn start
启动开发服务和假数据服务。
Windows 需要 C++ 编译环境和 Python 2.7,可以通过 windows-build-tools 安装。
单独启动客户端
- 在命令行中
cd
到项目根目录; - 执行
yarn install
安装依赖库; - 执行
yarn run demo
启动开发服务。
开发服务需要绑定到 3000
端口,请保证该端口没有被其它程序占用。
单独启动假数据服务
- 在命令行中
cd
到项目根目录; - 执行
yarn install
安装依赖库; - 执行
yarn run mock
启动开发服务。
假数据服务需要绑定到 8080
端口,请保证该端口没有被其它程序占用。
发布流程
- 在
dev
分支合并完成所有版本发布内容。 - 修改
package.json
中的版本信息。 - 更新
CHANGELOG.md
中的记录。 - 合并
dev
至master
分支。 - 推送
master
至 Gitlab 仓库。 - 新建发布版本的
tag
。 - 在
master
分支下执行yarn login --registry=制品仓库地址
登录需要发布的目标制品仓库; - 执行
yarn publish:all
发布模块至镜像。
发布 DEMO
- 安装
node.js
版本10.20.1
; - 安装
yarn
,在命令行中执行npm install -g yarn
; - 在命令行中执行
npm config set registry http://nexus3.km.co-mall/repository/npm/
; - 在命令行中
cd
到项目根目录; - 执行
yarn install
安装依赖库; - 执行
yarn run build
生成静态资源文件; - 发布的文件存放于
./build
。