一、安装脚手架
# 安装为全局命令
npm i -g @cvte/resource-center-cli
rc -V # 查看当前版本
# 首次使用必须登陆个人域账号,否则无法使用功能
# 若本地账号过期或需要切换本地域账号,则使用命令
rc login
使用rspack
作为代码构建器
在@cvte/resource-center-cli@1.9.0
及之后版本,内置除了集成webpack@5.66.0"">`webpack@5.66.0还集成了
@core@1.0.0-alpha.5"">rspack/core@1.0.0-alpha.5`,用于提供更高效率的开发;
开发者想要再未进行设置的情况下,默认依然会使用webpack
构建器来构建代码工程,开发者可以使用如下方式切换为rspack
,全局有效;
rc config set packer=rspack
想要切换回webpack
,可用如下方式
rc config set packer=webpack
二、管理系统创建项目分组
项目分组命名建议使用全小写+中横线的命名结构。
访问地址:资源管理系统
可查看当前资源中心所有项目分组:
创建项目分组:
三、本地资源初始化
场景一、创建一个标准资源工程
该特性在@cvte/resource-center-cli@1.7.0
之后版本存在
执行命令:
rc generate # 或缩写 rc g
输入对应的资源信息:
该命令会创建一个空工程,然后再将空工程改造为资源工程
场景二、将已有工程改造为资源
进入工程目录并执行命令:
rc init # 或缩写 rc n
输入对应的资源信息:
资源特性说明
其中需要说明的是。
资源名称必须全资源系统唯一,并会进行正则校验名称合法性。
资源分组必须为资源系统中的项目分组名称。
资源起始版本默认为1.0.0。
资源工程初始化完成
完成初始化后,工程的package.json
文件会有如下变化:
工程根目录会新增资源导出文件:rc.exposes.js
。
四、编写资源导出文件
导出文件请根据自动生成的导出文件模版进行编写。
其中shared
字段存放该依赖模块会用到的共享依赖,比如react
、react-dom
、mobx
这类全局单例或有单独上下文作用域的第三库。
其他的字段为资源导出的键名。
shared?: { // 导出资源中的共享依赖
[depName: string]: { // 依赖名称作为键名
isEager?: boolean; // 共享是否为即时消费模式,默认为false
isSingleton?: boolean; // 共享是否为全局单例模式,默认为false
shareKey?: string; // 依赖的共享别名
};
};
[exposeKey: string]: { // 导出点键名
file: string; // 导出内容所在的文件在工程中的相对路径【**** 带文件后缀名 ****】
name?: string; // 用于资源管理系统中展示该导出点的标题
desc?: string; // 用于资源管理系统中展示该导出点的简介
};
CSB模块导出示例:
// 必须使用export default的方式
export default {
/**
*
* 导出如下所示数据结构:
shared?: { // 导出资源中的共享依赖
[depName: string]: { // 依赖名称作为键名
isEager?: boolean; // 共享是否为即时消费模式,默认为false
isSingleton?: boolean; // 共享是否为全局单例模式,默认为false
strictVersion?: boolean; // 是否严格遵守版本,默认为false
requiredVersion?: string; // 依赖所必需的版本
version?: string; // 当前资源所提供该依赖的版本
shareKey?: string; // 依赖的共享别名
};
};
[exposeKey: string]: { // 导出点键名
file: string; // 导出内容所在的文件在工程中的相对路径【**** 带文件后缀名 ****】
name?: string; // 用于资源管理系统中展示该导出点的标题
desc?: string; // 用于资源管理系统中展示该导出点的简介
};
*
*/
shared: {
'ag-grid-react': {
isSingleton: true,
},
'@cvte/wuli-antd': {
isSingleton: true,
version: '1.4.2-13',
},
'@cvte/cir-framework': {
isSingleton: true,
},
antd: {
isSingleton: true,
version: '4.16.13',
},
axios: {
isSingleton: true,
},
mobx: {
isSingleton: true,
version:'5.0.3',
},
react: {
isSingleton: true,
version: '17.0.2',
strictVersion: true,
},
'react-dom': {
isSingleton: true,
version: '17.0.2',
strictVersion: true,
},
},
Router:{
file: './pages/route.rc.tsx',
name: '数据字典导出路由',
},
};
五、资源使用其他资源
依赖资源安装
首先在宿主资源中package.json
所在目录下执行命令:
rc install group1/dep1@version group2/dep2@version
# 或缩写 rc i group1/dep1@version group2/dep2@version
# 其中group为资源所属项目分组,缺省为public
# 其中dep为资源名称,必填信息
# 其中version为资源版本,缺省为latest
在此过程中,将会使用git提交package.json
的内容,并更新资源的远端配置内容。
同时,脚手架会帮助安装该依赖资源的开发声明包。
代码接入
请移步至「资源接入篇」
六、本地资源推送/编译
普通编译
在资源工程目录下执行推送命令
rc push # 或缩写 rc p
由于推送是默认进行生产模式编译,如果开发者有线上调试需求,可先进行编译过程(默认开发模式),再直接推送编译结果。
rc compile # 或缩写 rc c
rc push -f ./dist # 或缩写 rc p -f ./dist
自定义webpack.config.js内容
如果本地开发者需要覆盖或修改脚手架内置编译模块的webpack
配置内容。
请在资源工程的根目录建立webpack.config.rc.js
文件,导出一个带有config
参数并返回webpack config
对象内容的方法即可。
同时支持该方法为Promise
/async/await
异步模式。
webpack.config.rc.js
示例内容如下:
async function override(config){
return {
...config
};
}
module.exports = override;
七、线上资源版本管理
v1.9.x之后的管理方式
v1.9.x之前的管理方式
资源发版到DEV环境
当本地资源调试开发完成后,如果只是在本地执行rc push
命令,那仅代表将该资源推送到远端。
而要让其他资源使用新的版本,需要点击「发版」,才能将「当前版本」冻结并发布到DEV
环境
当资源「发版」后,当前版本自动增长一个小版本。
资源DEV版本同步到各环境
当资源某个版本已经被发版到DEV
环境,并想将该DEV环境下的版本同步至其他环境。
则需要在「历史版本」中勾选对应的版本号,并且通过顶部按钮「同步FAT」、「同步UAT」等按钮同步至各环境。
需要注意的是「全网发布」的功能是直接将该DEV
环境下的版本一键同步至各个环境,是有一定风险的,如非运维需要,请尽可能不要使用它!
资源「依赖管理」
该功能是作为管理当前资源所依赖的其他资源在各环境中的版本。
比如「资源A」依赖「资源B」,而「资源A」在FAT
环境下需要用「资源B」的某一指定版本,则可在此处设置。
如果某一工程设置了资源中心的「根应用」特性,则当前资源的该配置失效,需在「根应用」对应的资源下设置。
操作规范
所有的依赖只能在DEV
环境下增加,然后通过例如「DEV同步」等按钮从前一个环境同步至当前选择环境。
然后需要先点击「保存」按钮保存当前环境的依赖版本配置清单
再点击「刷新配置」同步资源服务网关对当前环境依赖版本的转发配置
全网版本回退
在资源管理系统中
选择想要回退版本的资源并进入详情页
查看版本
选择想要回退的历史版本,并同步至对应环境或全环境
指定根应用下的资源版本变更
首先必须确认指定的应用资源支持了根应用特性,具体参见资源接入-根应用特性
进入资源管理系统
进入指定的应用资源详情
变更依赖资源的版本
保存版本配置规则数据
将该版本配置规则同步至资源中心网关
覆盖已发版的资源内容 / 线上紧急修复版本
该特性在@cvte/resource-center-cli@1.8.3
及其之后版本存在
前提条件:该资源已经发版,且已经在DEV
环境及其他环境上存在版本
当出现线上异常需要及时修复,同时不被允许发生版本更迭
在当前修复的分支下执行命令 rc hotfix 1.0.x
,其中1.0.x
代表线上异常的版本号
推送完成后,对应版本的线上DEV
环境即发生修复变化
如果需要同步至其他环境,则直接在「历史版本」下点击的「同步XX」则直接同步到其他环境
最后编辑:袁子涵 更新时间:2025-04-18 15:27