插件部署
插件开发完成后,首先需将构建产物发布至资源服务器(例如 CDN 或 npm 仓库)。随后,需依次确认以下配置项是否正确:前端项目中插件的基础路径、建模平台中配置的插件运行时仓库地址。待各项配置核实无误后,方可进行插件效果的最终验证。
发布插件
在本示例中,我们以推送至 npm 私有仓库为例,执行以下命令将插件推送至团队私有仓库:
# 发布插件包至私有仓库
$ npm publish --registry=http://private-npm-registry/发布成功后,请确保完成以下检查:
- 前端项目中配置的插件基础路径指向正确的资源地址
- 建模平台中
插件运行时仓库配置更新为当前发布的版本
确认无误后,请在建模平台发布最新版本的模型。模型发布完成后,即可通过前端项目预览插件功能效果。
生产环境
前端应用在运行过程中,会依据模型动态加载 npm 私有仓库中的插件内容并使其运行。然而,在生产环境中,若前端应用依旧从 npm 私有仓库加载插件内容,会面临如npm私有仓库外网访问不到的问题。为了解决这一问题,我们提供了两种有效的部署方式。
Nginx代理
iBizHUB支持对插件加载基础路径pluginBaseUrl进行修改。在生产环境的应用容器中,我们可以借助 Nginx 服务器,根据修改后的插件加载基础路径,将请求反向代理到 npm 私有仓库。这种方式一般适用于非私有化环境(例如演示环境)的生产部署,其显著优势在于无需重新构建应用。
- 更新环境文件中的插件基础加载路径(
pluginBaseUrl)
修改项目中的环境文件,更新 pluginBaseUrl 变量。示例代码如下:
window.Environment = {
pluginBaseUrl: './plugins',
// 其他环境变量...
}- 然后调整 Nginx 反向代理配置,详情如下:
# Nginx 反向代理配置示例
location /plugins/ {
proxy_pass http://private-npm-registry/;
proxy_set_header Authorization "Bearer ${NPM_TOKEN}";
}静态打包
对于私有化部署环境,可能会存在无法访问外部资源的情况,对于这种场景我们推荐采用静态打包模式。在此模式下,首先需要将当前应用所涉及的所有插件从团队私有 npm 仓库拉取到当前前端项目仓库中,并对插件加载基础路径进行相应调整。然后对前端项目进行构建,构建完成的镜像即可用于生产环境部署。这种方式虽然需要重新构建项目,但能更好地适应私有化部署环境的要求。
具体操作步骤如下:
- 更新下载清单(
ibiz-download-pkg.config.js):
在项目中创建或修改 ibiz-download-pkg.config.js 文件,配置插件下载的相关信息,示例代码如下:
export default defineDownloadPkgConfig({
// 私有仓库地址
registry: 'http://xxxxxxx',
// 插件代码输出位置
outDir: './public/plugins',
// 插件列表
dependencies: [
// 插件名称@插件版本
'vue@2.7.13'
],
});这一步配置了插件下载清单,用于指定插件的私有仓库地址、插件代码输出位置和插件列表,也可以通过下面命令生成下载清单:
# 需指定模型路径和应用标识,其中m参数表示模型路径,app参数表示应用标识
$ ibiz-temp compute-pkg -m /root/workspace/iBizPLM/plm-core/src/main/resources/model/cn/ibizlab/plm --app plmmob- 下载插件
在配置好下载清单后,通过以下命令下载插件:
$ ibiz-temp download-pkg- 更新环境文件中的插件基础加载路径(
pluginBaseUrl)
修改项目中的环境文件,更新 pluginBaseUrl 变量,确保前端应用能够正确加载本地的插件。示例代码如下:
window.Environment = {
pluginBaseUrl: './plugins',
// 其他环境变量...
}通过以上两种方式,我们可以根据不同的生产环境需求,灵活选择合适的插件部署方案,确保前端插件在生产环境中稳定、高效地运行。
更新插件
iBizHUB 前端交付产物包含两种形式:标准前端镜像与代码版前端镜像。这两种交付物中的插件内容均统一存放于前端项目的 public/plugins 目录下,并随主项目作为静态资源一并构建。在实际部署或二次开发过程中,可能会涉及对现有插件的修改或新增插件,此时需遵循以下更新机制:
场景一:无 npm 私有仓库
如环境中未部署 npm 私有仓库,可按以下步骤更新插件:
- 获取插件源码:如需修改现有插件,请先获取对应插件的源代码;
- 更新与新建:修改插件逻辑或新建插件后,对插件进行构建,生成新的插件产物;
- 替换与版本管理:将新生成的插件产物覆盖至原
public/plugins目录下的对应路径。若插件版本发生变更,请同步更新插件目录的名称,以确保版本一致性。
该方式适用于本地调试或简单迭代场景,但需注意插件与主项目的耦合性较强。
场景二:存在 npm 私有仓库
如已具备 npm 私有仓库,建议采用以下标准化流程实现插件的集中化管理:
- 同步现有插件:将交付物中
public/plugins目录下的全部插件内容发布至 npm 私有仓库,确保版本与依赖关系准确无误; - 调整前端配置:修改前端项目的环境变量,将
pluginBaseUrl的值设置为 npm 私有仓库的地址,使插件资源从仓库动态加载; - 后续更新机制:此后所有新插件的创建和现有插件的更新,均通过 npm 私有仓库进行版本发布与依赖管理,实现插件资源的解耦和独立迭代。
该方式推荐在团队协作或持续集成环境中使用,可提升插件管理的可维护性和项目架构的清晰度。