从0.11.0升级到1.2.0
平台已有的前端模块、组件、服务等清单和详细信息可参考 服务列表。
若无特殊说明,本次升级所有前端模块最新版为 1.2.0
,后端组件、服务版本最新版为 1.2.0.RELEASE
,数据版本为 1.2.0.RELEASE
。
- 1.1.0 -> 1.2.0 的重要变更日志请参考 v1.2版本更新
- 1.0.0 -> 1.1.0 的重要变更日志请参考 v1.1版本更新
- 0.11.0 -> 1.0.0 的重要变更日志请参考 v1.0版本更新
新增组件
- 组件
组件 | 描述 |
---|---|
hzero-starter-redis | Redis依赖,相关工具类等 |
hzero-boot-nlp | NLP服务客户端 |
hzero-starter-social-core | 三方登录核心依赖 |
hzero-starter-social-qq | 三方QQ登录 |
hzero-starter-social-wechat | 三方微信登录 |
hzero-starter-social-sina | 三方微博登录 |
hzero-boot-api-customize | API客制化组件 |
hzero-boot-oauth | OAuth客户端组件 |
hzero-boot-data-change | 数据变更识别组件 |
hzero-boot-monitor | 监控审计客户端 |
hzero-starter-integration-sdk | 接口平台SDK |
hzero-starter-social-wechat-enterprise | 企业微信登录 |
hzero-boot-pay | 支付服务客户端 |
hzero-starter-jdbc | 动态JDBC组件 |
- 消息服务三方支持组件
组件 | 描述 |
---|---|
hzero-starter-integrate-wechat-official | 微信公众号支持组件 |
hzero-starter-integrate-wechat-enterprise | 企业微信支持组件 |
hzero-starter-integrate-dd | 钉钉支持组件 |
- 消息服务短信支持组件
组件 | 描述 |
---|---|
hzero-starter-sms-core | 短信服务支持核心组件 |
hzero-starter-sms-aliyun | 阿里云短信支持组件 |
hzero-starter-sms-qcloud | 腾讯云短信支持组件 |
hzero-starter-sms-baidu | 百度云短信支持组件 |
- 文件服务各类存储拆分如下组件
组件 | 描述 |
---|---|
hzero-starter-file-core | 对象存储支持核心组件 |
hzero-starter-file-minio | MinIO存储支持组件 |
hzero-starter-file-aliyun | 阿里云存储支持组件 |
hzero-starter-file-bos | 百度云存储支持组件 |
hzero-starter-file-obs | 华为云存储支持组件 |
hzero-starter-file-cos | 腾讯云存储支持组件 |
hzero-starter-file-aws | aws存储支持组件 |
hzero-starter-file-azure | 微软存储支持组件 |
hzero-starter-file-jdcloud | 京东云存储支持组件 |
hzero-starter-file-ceph | Ceph存储支持组件 |
删除组件
组件 | 描述 |
---|---|
hzero-boot-common | 代码移至 hzero-starter-core 中,使用方只需删除 hzero-boot-common 的依赖即可 |
hzero-starter-zuul-ratelimit | 网关Zuul改为spring-cloud-gateway,移除Zuul相关依赖 |
新增服务
组件 | 简称 | 默认端口 | 描述 | SaaS和OP说明 | 数据库Schema |
---|---|---|---|---|---|
hzero-im | HIMS | 8025 | 即时通讯服务 | 不区分 | hzero_im |
hzero-invoice | HIVC | 8015 | 发票服务 | 区分 | hzero_invoice |
hzero-ocr | HOCR | 8290 | 图像识别服务 | 不区分 | |
hzero-webexcel | HEXL | 8045 | 在线Excel服务 | 不区分 | hzero_webexcel |
hzero-admin | HADM | 8060 | 平台治理服务 | 区分 | hzero_admin |
hzero-iot | HIOT | 8070 | IoT服务 | 不区分 | hzero_iot |
hzero-search | HSRH | 8090 | 检索服务 | 不区分 | hzero_search |
hzero-dpm | HDPM | 8055 | 数据模型服务 | 不区分 | hzero_dpm |
服务/组件升级
-
修改 pom.xml,如果 parent 依赖的
hzero-parent
,需修改版本号为1.2.0.RELEASE
;如果是自建的 parent 项目,需将其中的 hzero 服务/组件的版本号修改为1.2.0.RELEASE
<parent> <groupId>org.hzero</groupId> <artifactId>hzero-parent</artifactId> <version>1.2.0.RELEASE</version> </parent>
-
修改依赖的服务版本号
<!-- SAAS 版本 --> <dependency> <groupId>org.hzero</groupId> <artifactId>hzero-xxx-saas</artifactId> <version>1.2.0.RELEASE</version> </dependency> <!-- OP 版本 --> <dependency> <groupId>org.hzero</groupId> <artifactId>hzero-xxx</artifactId> <version>1.2.0.RELEASE</version> </dependency>
重点配置调整
服务名称强制一致调整
自动刷新服务路由时,不再支持自动处理带后缀(如工号)的服务名,需保持配置文件中的服务名和 ExtraDataManager 中配置的服务名一致。
-
建议项目上,每个服务新建一个 ExtraDataManager 的实现类,使用配置的形式注入服务配置,便于开发人员本地开发。
@ChoerodonExtraData public class HiamExtraDataManager implements ExtraDataManager { @Autowired private org.springframework.core.env.Environment environment; @Override public ExtraData getData() { ChoerodonRouteData choerodonRouteData = new ChoerodonRouteData(); choerodonRouteData.setName(environment.getProperty("hzero.service.current.name", "hiam")); choerodonRouteData.setPath(environment.getProperty("hzero.service.current.path", "/iam/**")); choerodonRouteData.setServiceId(environment.getProperty("hzero.service.current.service-name", "hzero-iam")); choerodonRouteData.setPackages("org.hzero.iam"); extraData.put(ExtraData.ZUUL_ROUTE_DATA, choerodonRouteData); return extraData; } }
-
本地开发时,则可以在环境变量或本地配置文件中配置带后缀的服务名
hzero: service: current: name: hiam-16007 path: /iam-16007/** service-name: hzero-iam-16007
服务合并配置
如果有服务合并,需将 hzero.modular.enable
设置为 true
,且必须在 ExtraDataManager 配置中设置 ChoerodonRouteData 的 packages
参数,该参数指定要扫描的包,否则启动会报错。不需要服务合并,可以设置为 false,或者删除此配置。
hzero:
modular:
enable: false
OAuth 配置调整
-
hzero-oauth 新增加了二级域名单点登录、SAML、密码加密的相关配置。
hzero: sso: # 启用二级域名单点登录 enabled: ${HZERO_OAUTH_SSO_ENABLED:false} service: # Cas 客户端地址 baseUrl: ${HZERO_OAUTH_SSO_SERVICE_BASE_URL:http://dev.hzero.org:8080/oauth} # SAML 相关配置 saml: entity_id: hzero:org:sp passphrase: secret private_key: MIIEvQIBADANB......... certificate: MIIDEzCCAfugA......... password: # 密码加密公钥 public-key: ${HZERO_OAUTH_PASSWORD_PUBLIC_KEY:MFwwDQYJKo.......} # 密码加密私钥 private-key: ${HZERO_OAUTH_PASSWORD_PRIVATE_KEY:MIIBVQI........}
-
密码传输使用 RSA 非对称加密,注意一定要设置加密的公钥和私钥,可以直接从配置文件中拷贝,也可以使用如下工具方法生成自定义的公钥和私钥。
public static void main(String[] args) { Pair<String, String> key = EncryptionUtils.RSA.generateKeyPair(); String privateKey = key.getFirst(); String publicKey = key.getSecond(); System.out.println("PrivateKey >>>\n" + privateKey + "\n"); System.out.println("PublicKey >>>\n" + publicKey + "\n"); String content = "12345678"; System.out.println("Content >>>\n" + content + "\n"); // 使用公钥加密 String encrypt = EncryptionUtils.RSA.encrypt(content, publicKey); // 使用私钥解密 String decrypt = EncryptionUtils.RSA.decrypt(encrypt, privateKey); System.out.println("Encrypt >>>\n" + encrypt + "\n"); System.out.println("Decrypt >>>\n" + decrypt); }
-
如果覆盖或重定义了登录页面,后端访问登录页面时(/login),默认会在 Model 中返回
publicKey
公钥,前端访问登录接口时,需使用 publicKey 将密码加密后传输。前端需引入/public/static/main/js/jsencrypt.min.js
加密工具。使用方式如下<input id="publicKey" type="hidden" th:value="${publicKey}" /> function encryptPwd(password, publicKey) { // 初始化加密器 const encrypt = new JSEncrypt(); // 设置公钥 encrypt.setPublicKey(publicKey); // 加密 return encrypt.encrypt(password); }
-
如果后端需要对密码加密,可以使用
org.hzero.core.util.EncryptionUtils
工具,使用方式如下public String encryptPwd(String password, String publicKey) { return EncryptionUtils.RSA.encrypt(password, publicKey); }
服务治理调整
-
1.1.0 新增了 hzero-admin 平台治理服务,且为基础必须服务,升级时可通过服务选配平台创建 hzero-admin 新服务。hzero-admin 服务主要用于管理服务路由、熔断、限流配置等,并集成了 SpringbootAdmin 监控管理页面。除此之外,hzero-admin 还监听服务注册,通知 hzero-iam 刷新权限、通知 hzero-swagger 刷新文档。
-
原 hzero-config 配置中心服务移除了路由、熔断、限流等功能,作为 Spring cloud 版本的配置中心使用。如果项目上没有动态刷新配置的需要,可不部署此服务,也可以使用其它配置中心替换。
-
hzero-config 服务不再区分 OP 和 SaaS 版本,以前依赖
hzero-config-saas
版本的需调整如下:<dependency> <groupId>org.hzero</groupId> <artifactId>hzero-config</artifactId> </dependency>
-
hzero_swagger、hzero_config 服务的数据库需由原
hzero_governance
调整为hzero_admin
,原 hzero_governance 库已废弃。 -
如果直接从
0.11.0
及之前的版本升级至1.2.0
,请先参考 1.0.2 的ChangeLog文档升级权限集控制
网关服务调整
-
hzero-gateway 网关服务由 Zuul 替换为 Spring cloud gateway,
application.yml
、bootstrap.yml
需要从依赖的 hzero-gateway jar 包中拷贝出来进行覆盖。启动类需调整为如下:@EnableHZeroGateway @EnableDiscoveryClient public class GatewayApplication { public static void main(String[] args) { new SpringApplicationBuilder(GatewayApplication.class).web(WebApplicationType.REACTIVE).run(args); } }
依赖调整
由于 1.0.0 中合并了 choerodon 组件的源码,如果服务中依赖了 choerodon-starter-xxx 的组件,需要删除这些依赖,并使用 hzero-starter-xxx 替换,避免冲突。
如果升级了平台基础服务,业务服务中,一定要将 hzero-starter 相关组件升级到新版本,否则可能出现权限校验等问题
choerodon-starter-core
替换成hzero-starter-core
choerodon-starter-oauth-resource
替换成hzero-starter-core
choerodon-starter-swagger
替换成hzero-starter-core
choerodon-starter-config-client
替换成hzero-starter-config-client
choerodon-starter-mybatis-mapper
替换成hzero-starter-mybatis-mapper
choerodon-starter-hitoa
替换成hzero-starter-hitoa
choerodon-starter-feign-reply
替换成hzero-starter-feign-replay
choerodon-starter-oauth-core
替换成hzero-boot-oauth
-
hzero-iam
服务去除了iam-service
的依赖,并做了部分优化、源码整合。如果服务中依赖了 iam-service,需要删除依赖。如果覆盖了 Hiam 开头的源码类,类名需要去掉 Hiam 前缀。 -
hzero-oauth
服务去除了oauth-server
的依赖,并做了部分优化、源码整合。如果服务中依赖了 oauth-server,需要删除依赖。如果覆盖了源码,需根据实际覆盖情况手工调整下相关错误。 -
1.1 中新增了
hzero-starter-redis
组件,将hzero-starter-core
中与 redis 相关的功能抽取出来,便于按需引入 redis 依赖。因此使用了 Redis 功能的服务,需在 pom.xml 中加入 hzero-starter-redis 依赖:<dependency> <groupId>org.hzero.starter</groupId> <artifactId>hzero-starter-redis</artifactId> </dependency>
-
消息服务拆分了短信支持组件,需自行按需在消息服务中引入依赖
组件 | 描述 |
---|---|
hzero-starter-sms-aliyun | 阿里云短信支持组件 |
hzero-starter-sms-qcloud | 腾讯云短信支持组件 |
hzero-starter-sms-baidu | 百度云短信支持组件 |
- 文件服务拆分了各类存储支持组件,需自行按需在文件服务中引入依赖
组件 | 描述 |
---|---|
hzero-starter-file-minio | MinIO存储支持组件 |
hzero-starter-file-aliyun | 阿里云存储支持组件 |
hzero-starter-file-bos | 百度云存储支持组件 |
hzero-starter-file-obs | 华为云存储支持组件 |
hzero-starter-file-cos | 腾讯云存储支持组件 |
hzero-starter-file-aws | aws存储支持组件 |
hzero-starter-file-azure | 微软存储支持组件 |
hzero-starter-file-jdcloud | 京东云存储支持组件 |
hzero-starter-file-ceph | Ceph存储支持组件 |
- 1.1 中移除了
hzero-boot-common
组件,将源码移至hzero-starter-core
中,对依赖方无影响,需要移除服务中的hzero-boot-common
依赖。 - 1.2 中移除了
hzero-starter-zuul-ratelimit
组件,如果使用了此组件,需从依赖中移除。
数据升级
-
请先备份每个库的表结构及数据,便于出问题之后恢复
-
hzero-iam 由于去除了 iam-service 的依赖,
hzero_platform
库如下表在 1.0.0 中已删除,升级时需自行根据实际情况删除fd_audit fd_lookup fd_lookup_tl fd_lookup_value fd_lookup_value_tl fd_organization fd_project fd_project_relationship fd_project_type iam_application iam_application_exploration iam_book_mark iam_dashboard iam_dashboard_role iam_group iam_menu_config iam_system_setting iam_upload_history iam_user_dashboard oauth_login_attempt_times oauth_login_history
-
值集视图行(
hpfm_lov_view_line
)增加了view_header_id、field_name
字段的唯一索引,考虑到以前有脏数据,需要使用如下SQL手动清理脏数据后再升级 hzero_platform 的数据库脚本。-- 删除 hpfm_lov_view_line 中的脏数据 DELETE FROM hpfm_lov_view_line WHERE view_line_id IN ( SELECT t.* FROM ( SELECT h1.view_line_id FROM hpfm_lov_view_line h1 JOIN hpfm_lov_view_line h2 ON ( h1.view_header_id = h2.view_header_id AND h1.field_name = h2.field_name AND h1.view_line_id <> h2.view_line_id ) JOIN hpfm_lov_view_header h3 ON h3.view_header_id = h1.view_header_id AND h3.lov_id <> h1.lov_id ) t ); -- 删除 hpfm_lov_view_line_tl 中的无效数据 DELETE FROM hpfm_lov_view_line_tl WHERE view_line_id NOT IN ( SELECT view_line_id FROM hpfm_lov_view_line );
-
从 gitlab 上下载
1.2.0.RELEASE
的数据库脚本和Excel期初数据ssh: ~ git clone git@code.choerodon.com.cn:hzero-hzero/hzero-resource.git https: ~ git clone https://code.choerodon.com.cn/hzero-hzero/hzero-resource.git ~ git checkout 1.2.0.RELEASE
-
启动交互式脚本安装工具
- 在根目录下打开 bash 窗口,运行 database-init.sh 脚本
- 按步骤选择安装的数据库类型、数据库连接信息、项目版本
- 在浏览器中打开输出的地址
-
先升级表结构
- 安装页面展示了当前版本及可以安装的服务和对应的数据,服务后显示的是对应的数据库schema。
- 首先更新数据库,选择要更新的服务,再点击【更新数据库】即可,如果数据库不存在对应的 schema,会自动创建。
-
升级数据
- 卡片管理新增一个卡片参数字段,原有的code唯一性改成了code和卡片参数做唯一性,需使用如下SQL修复工作台卡片数据
-- MySQL UPDATE hpfm_dashboard_layout hdl INNER JOIN ( SELECT id, CODE, card_params FROM hpfm_dashboard_card ) b ON b.CODE = hdl.CODE SET hdl.card_id = b.id; -- SqlServer UPDATE hpfm_dashboard_layout SET card_id = hpfm_dashboard_card.id FROM hpfm_dashboard_layout, hpfm_dashboard_card WHERE hpfm_dashboard_layout.CODE = hpfm_dashboard_card.CODE; -- ORACLE UPDATE HPFM_DASHBOARD_LAYOUT hdl SET ( hdl.CARD_ID ) = ( SELECT hdc.ID FROM HPFM_DASHBOARD_CARD hdc WHERE hdc.CODE = hdl.CODE ) WHERE EXISTS ( SELECT 1 FROM HPFM_DASHBOARD_CARD hdc WHERE hdl.CODE = hdc.CODE );
* 由于消息发送配置与发送账户的关联关系由ID改成编码,需在 `hzero_message` 库下通过如下SQL手动修复数据。 ```sql # mysql oracle 执行 UPDATE hmsg_template_server_line htsl SET htsl.server_code = ( SELECT hes.server_code FROM hmsg_email_server hes WHERE hes.server_id = htsl.server_id ) WHERE htsl.type_code = 'EMAIL'; UPDATE hmsg_template_server_line htsl SET htsl.server_code = ( SELECT hss.server_code FROM hmsg_sms_server hss WHERE hss.server_id = htsl.server_id ) WHERE htsl.type_code = 'SMS'; UPDATE hmsg_template_server_line htsl SET htsl.server_code = ( SELECT hwo.server_code FROM hmsg_wechat_official hwo WHERE hwo.server_id = htsl.server_id ) WHERE htsl.type_code = 'WC_O'; UPDATE hmsg_template_server_line htsl SET htsl.server_code = ( SELECT hwe.server_code FROM hmsg_wechat_enterprise hwe WHERE hwe.server_id = htsl.server_id ) WHERE htsl.type_code = 'WC_E'; # mssql 执行 UPDATE htsl SET htsl.server_code = hes.server_code FROM hmsg_template_server_line htsl, hmsg_email_server hes WHERE htsl.server_code = hes.server_code AND htsl.type_code = 'EMAIL'; UPDATE htsl SET htsl.server_code = hss.server_code FROM hmsg_template_server_line htsl, hmsg_sms_server hss WHERE htsl.server_code = hss.server_code AND htsl.type_code = 'SMS'; UPDATE htsl SET htsl.server_code = hwo.server_code FROM hmsg_template_server_line htsl, hmsg_wechat_official hwo WHERE htsl.server_code = hwo.server_code AND htsl.type_code = 'WC_O'; UPDATE htsl SET htsl.server_code = hwe.server_code FROM hmsg_template_server_line htsl, hmsg_wechat_enterprise hwe WHERE htsl.server_code = hwe.server_code AND htsl.type_code = 'WC_E';
* 在安装页面,选择要更新的数据,再点击【导入数据】即可更新期初数据。
数据处理
-
由于菜单、角色使用编码作为路径,需调用 hzero-iam 下的如下接口修复菜单、角色历史数据
-
租户增加多语言,修复历史数据 (hzero_platform)
INSERT INTO hpfm_tenant_tl ( tenant_id, lang, tenant_name ) ( SELECT tenant_id, 'zh_CN', tenant_name FROM hpfm_tenant t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_tenant_tl tl WHERE t.tenant_id = tl.tenant_id AND tl.lang = 'zh_CN' ) ); INSERT INTO hpfm_tenant_tl ( tenant_id, lang, tenant_name ) ( SELECT tenant_id, 'en_US', tenant_name FROM hpfm_tenant t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_tenant_tl tl WHERE t.tenant_id = tl.tenant_id AND tl.lang = 'en_US' ) );
-
值集视图增加多语言,修复历史数据 (hzero_platform)
INSERT INTO hpfm_lov_view_header_tl ( view_header_id, lang, view_name, title ) ( SELECT view_header_id, 'zh_CN', view_name, title FROM hpfm_lov_view_header t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_lov_view_header_tl tl WHERE t.view_header_id = tl.view_header_id AND tl.lang = 'zh_CN' ) ); INSERT INTO hpfm_lov_view_header_tl ( view_header_id, lang, view_name, title ) ( SELECT view_header_id, 'en_US', view_name, title FROM hpfm_lov_view_header t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_lov_view_header_tl tl WHERE t.view_header_id = tl.view_header_id AND tl.lang = 'en_US' ) );
-
值集视图行增加多语言,修复历史数据 (hzero_platform)
INSERT INTO hpfm_lov_view_line_tl ( view_line_id, lang, display ) ( SELECT view_line_id, 'zh_CN', display FROM hpfm_lov_view_line t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_lov_view_line_tl tl WHERE t.view_line_id = tl.view_line_id AND tl.lang = 'zh_CN' ) ); INSERT INTO hpfm_lov_view_line_tl ( view_line_id, lang, display ) ( SELECT view_line_id, 'en_US', display FROM hpfm_lov_view_line t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_lov_view_line_tl tl WHERE t.view_line_id = tl.view_line_id AND tl.lang = 'en_US' ) );
-
接口平台发布地址字段变更,修复历史数据 (hzero_interface)
UPDATE hitf_interface_server his SET his.namespace = ( SELECT ht.tenant_num FROM hzero_platform.hpfm_tenant ht WHERE his.tenant_id = ht.tenant_id )
-
(可选)补全平台多语言数据,若英文数据少于中文数据时使用下面的SQL补全数据即可 (hzero_platform)
INSERT INTO hpfm_prompt (tenant_id, prompt_key,prompt_code, lang, description ) ( SELECT t.tenant_id, t.prompt_key, t.prompt_code, 'en_US', t.description FROM hpfm_prompt t WHERE t.lang = 'zh_CN' and NOT EXISTS ( SELECT 1 FROM hpfm_prompt tl WHERE t.prompt_key = tl.prompt_key and t.prompt_code = tl.prompt_code and t.tenant_id = tl.tenant_id AND tl.lang = 'en_US') );
-
弹性域表新增了多语言表,可通过如下SQL补全弹性域配置多语言数据 (hzero_platform)
-- 插入中文 INSERT INTO hpfm_flex_detail_config_tl ( detail_config_id, lang, field_description ) ( SELECT detail_config_id, 'zh_CN', field_description FROM hpfm_flex_detail_config hfdc WHERE NOT EXISTS ( SELECT 1 FROM hpfm_flex_detail_config_tl tl WHERE hfdc.detail_config_id = tl.detail_config_id AND tl.lang = 'zh_CN' ) ); -- 插入英文 INSERT INTO hpfm_flex_detail_config_tl ( detail_config_id, lang, field_description ) ( SELECT detail_config_id, 'en_US', field_description FROM hpfm_flex_detail_config hfdc WHERE NOT EXISTS ( SELECT 1 FROM hpfm_flex_detail_config_tl tl WHERE hfdc.detail_config_id = tl.detail_config_id AND tl.lang = 'en_US' ) );
-
汇率类型定义添加多语言支持,可通过如下SQL补全多语言数据 (hzero_platform)
INSERT INTO hpfm_exchange_rate_type_tl ( rate_type_id, lang, type_name ) ( SELECT rate_type_id, 'zh_CN', type_name FROM hpfm_exchange_rate_type t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_exchange_rate_type_tl tl WHERE t.rate_type_id = tl.rate_type_id AND tl.lang = 'zh_CN') ); INSERT INTO hpfm_exchange_rate_type_tl ( rate_type_id, lang, type_name ) ( SELECT rate_type_id, 'en_US', type_name FROM hpfm_exchange_rate_type t WHERE NOT EXISTS ( SELECT 1 FROM hpfm_exchange_rate_type_tl tl WHERE t.rate_type_id = tl.rate_type_id AND tl.lang = 'en_US' ) );
服务部署
-
数据升级完成之后再重启已升级的服务
-
重启完成后,如果因数据缓存问题,可到
开发管理>系统工具
下手动刷新缓存 -
建议按如下顺序重启服务
- hzero-register
- hzero-admin
- hzero-gateway
- hzero-iam
- hzero-oauth
- hzero-platform
- 其它服务
前端升级指南
-
新增服务模块
服务模块 描述 hzero-front-hadm 平台治理服务 hzero-front-hdpm 数据模型服务 hzero-front-hexl 在线Excel服务 hzero-front-hims 即时通讯服务 hzero-front-hiot IOT服务 hzero-front-hivc 发票服务 hzero-front-hmnt 审计管理服务 hzero-front-hocr 图像识别服务 -
调整 package.json 版本
在根目录下的package.json中更改hzero-front-*的版本号;
比如: hzero-front-hiam: ^0.10.0 调整为 hzero-front-hiam: 1.2.0;
服务模块 备注 hzero-front-hwfl
服务最新版本为 0.11.1 后续不再维护 hzero-front-hptl
最新版本为0.11.2, 后续不再维护 hzero-front-hcnf
最新版本为1.1.0 hzero-front-hlcd
最新版本为1.1.0,后续不再维护,新版lowcode正在迭代中 hzero-front-hsgp
最新版本为1.0.0, 后续不再维护 注意:
除没有1.2.0版本的模块外,所有模块版本都要升级到
1.2.0
。前端的服务模块中,除了必要的依赖,其他的模块都是按需的
- 前端最小依赖至少包含如下模块
- hzero-front
- hzero-front-runtime
- hzero-front-hiam
- hzero-front-hpfm
- hzero-front-himp
- hzero-front-hmsg
- 前端最小依赖至少包含如下模块
-
升级hzero-front-runtime
先升级对应版本的cli
npm install -g hzero-front-cli@1.2.0 --registry=http://nexus.saas.hand-china.com/content/groups/hzero-npm-group/
查看cli版本, 终端运行以下命令来查看cli版本,以确保cli升级成功
hzero-front-cli -v
使用 hzero-front-cli 来升级 hzero-front-runtime,更新配置, 执行如下命令;
hzero-front-cli .
-
安装依赖
在根目录下执行该语句,重新安装依赖
lerna bootstrap --registry http://nexus.saas.hand-china.com/content/groups/hzero-npm-group/
或者
yarn --registry http://nexus.saas.hand-china.com/content/groups/hzero-npm-group/
在根目录再次执行
yarn build:dll
编译
lerna run transpile
启动项目
yarn start
注意:
1.只是用yarn升级hzero-front-runtime的话,新的环境变量等配置是不会被更新的。
2.在升级
hzero-front-runtime
时,最好备份一下更改过的环境变量相关的内容和 webpack 配置相关的修改。 -
环境变量的变化
增加环境变量:
IM_ENABLE: 'BUILD_IM_ENABLE', // IM 功能是否启用,默认不启用 IM_WEBSOCKET_HOST: 'BUILD_IM_WEBSOCKET_HOST', // im websocket 地址 CUSTOMIZE_ICON_NAME: 'BUILD_CUSTOMIZE_ICON_NAME', // 客制化的iconfont font family 名称
-
升级时可能遇到的问题
-
遇到的报错信息为:
解决办法:在根目录的 src 下创建 assets/icons 文件夹。如果是在子模块启动,也需要在子模块下的 src 下创建 assets/icons 文件夹
- 遇到的报错信息为:
解决办法:安装 jsplumb: 执行如下命令
yarn add -W jsplumb@2.9.0
- 遇到的报错信息为:
解决办法:将 ‘bizcharts’ ‘@antv/data-set’ 替换为 ‘echarts’
- 遇到的报错信息为:
解决办法:删除根目录yarn.lock文件中的以下代码片段,重新安装依赖