小工具 · 规范库 · 前端代码规范(Vue2 / Element-UI / 状态与接口 / 构建)
前端构建与多机构打包规范
rules/20-frontend/webpack-build.md
前端构建与多机构打包规范
构建体系
- Webpack 3 + 自定义脚本,配置在
build/目录(webpack.base/dev/prod/dll.conf.js)。 - 不是 Vue CLI / Vite。新增构建配置走既有
build/体系,不要引入vue.config.js或vite.config.js。
多机构构建(核心约定)
项目通过 --env=<org> / --orgName=<org> 支持一套代码部署到多个医疗机构(高博/捷顺/一元/中兴/……)。机构标识:
| npm script | orgName | 说明 |
|---|---|---|
npm run dev / npm run dev:bren | bren | 默认/高博 |
npm run dev:jshun | jshun | 捷顺 |
npm run dev:eyuan | eyuan | 一元 |
npm run dev:zxin | zxin | 中兴 |
npm run dev:atmeng | atmeng | — |
npm run dev:fzsy | fzsy | — |
npm run dev:cping | cping | — |
npm run dev:hlws | hlws | — |
npm run dev:emr | emr | 电子病历微应用 |
npm run build:<org> | 同上 | 生产打包 |
改动时的约束
区分通用与机构差异
- 默认只改通用逻辑(对所有机构生效),通过运行时机构标识
orgName控制差异。 - 机构专属逻辑用
orgName判断收敛到一处,不要散落到多个文件硬编码。 - 改动若只面向某机构,明确说明影响范围,避免误伤其他机构。
环境变量
- 机构相关配置(接口域名、标题、主题色等)通过
--env/--orgName注入,在config/下按机构区分。 - 不要把某个机构的地址/标题硬编码进通用代码。
微前端打包
EMR_Micro_Web等子应用作为 micro-app 子应用,其package.json独立,打包产物供主应用加载。- 修改子应用注意其独立的构建命令(
build:emr)与资源 publicPath。
依赖与版本
- 依赖较旧(webpack3 / node-sass / axios 0.15)。不要为单个改动升级构建工具链或核心库大版本(会引发连锁兼容问题)。
- 新增依赖前评估与现有 webpack3/babel6 的兼容性;优先用项目已有的库实现。
engines声明 node >= 4(历史值),实际以团队约定的 Node 版本为准;不要在代码里用最新 Node API。
提交前自检
- 改动后至少本地
npm run dev:<你在用的org>跑通,确认无编译报错。 - 涉及通用代码的改动,说明是否影响其他机构构建。
- 不要把调试用的
console.log、注释代码块、临时debugger提交进去。