一、安装脚手架

# 安装为全局命令
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字段存放该依赖模块会用到的共享依赖,比如reactreact-dommobx这类全局单例或有单独上下文作用域的第三库

其他的字段为资源导出的键名。

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」则直接同步到其他环境

作者:袁子涵  创建时间:2022-03-02 15:29
最后编辑:袁子涵  更新时间:2025-04-18 15:27