后端微服务云原生【免费下载链接】midway A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 项目地址https://gitcode.com/gh_mirrors/mi/midway点击查看免费下载导读本文围绕 CONTRIBUTING.md 展开系统讲解 Midway一个面向全栈开发者、基于 IoC 容器的 Node.js 服务端框架开源仓库的协作规范覆盖 Issue 报告与标签体系、PR 提交流程、Commit Message 格式、分支策略与语义化版本发布机制。读完本文你将掌握一套可直接复用的开源协作实操流程并能对照仓库中的 package.json、lerna.json、scripts/publish.sh 等真实文件理解其底层执行逻辑。一、协作入口Issue 报告规范Midway 仓库要求所有问题Bug、功能建议、疑问等通过 Issue 提交并在提交前遵循以下三条基本原则明确问题类型在标题、标签或正文中说明这是哪一种 Issue先搜索再提问提交前先在已有 Issue 中检索避免创建重复问题善用标签表达意图使用下文介绍的「有用标签Useful Tags」来标清问题目的。Issue 被提交后MidwayJs 核心组成员会确认其目的、替换更准确的标签、关联对应的 Milestone里程碑并指派开发者处理。标签体系分为两组type类型描述 Issue 属于哪一类问题例如feature、bug、documentation、performance、supportscope范围描述改动涉及哪个模块或哪些文件例如core: xx、plugin: xx、deps: xx。常用标签速查表标签含义与使用场景support需要框架开发者协助定位问题或希望改进框架本身均可打此标签bug疑似缺陷。组成员复核确认为 Bug 后会补充confirmed标签confirmed已被核心组确认的真实 Bug会优先排期修复critical对线上运行的应用程序有负面影响的高优先级 Bug将立即修复core: xx与框架核心相关的 Issue例如core: loader表示与 loader 配置有关plugin: xx与插件相关的 Issue例如plugin: session表示与 session 插件有关deps: xx与依赖相关的 Issue例如deps: egg-corschore: documentation文档类 Issue需要修改文档Bug 的修复版本也通过标签标注一个 Bug 需要从某个最低版本起修复例如需要从 0.9.x 修复则打上0.9、0.10、1.0、1.1等标签明确各版本分支的修复义务。二、文档要求功能必须附带说明Midway 的协作规范有一条硬性要求所有功能变更必须同时提交文档。文档需要满足根据功能性质阐明其一个或多个方面是什么what、为什么会发生why、如何工作how尽量包含一系列操作步骤来说明如何复现、排查或解决问题鼓励提供简单但自解释的示例demo所有示例统一汇总到独立的 examples 仓库维护提供必要的参考链接如应用流程、术语解释和引用资料。这与仓库 AGENTS.md 中的文档规则一脉相承当前文档位于site/docsDocusaurus 站点要求组件文档面向初学者遵循「先讲解决什么问题、何时使用、最简单可用路径再深入高级用法、配置与扩展点」的渐进式结构而非纯 API 罗列。这正是本项目文档协作的实践基调。三、提交代码Pull Request 全流程3.1 分支开发与提交如果你是仓库开发者并愿意贡献代码请遵循以下命令流程# 创建新分支开发。分支名要有语义避免 update、tmp 这类无意义词。 # 如果是实现新功能建议使用 feature/xxx 命名。 $ git checkout -b branch-name # 完成修改后运行测试。必要时新增测试用例或调整旧用例。 $ npm test # 测试通过后即可推送。注意提交信息需遵循规范格式。 $ git add . # 使用 git add -u 可删除文件 $ git commit -m fix(role): role.use must xxx $ git push origin branch-name在当前仓库中npm test的实际执行是lerna run test见 package.json即通过 Lerna 在 monorepo 下并行运行所有子包的测试如需单独验证某个包仓库规范建议使用pnpm -C package test限定作用域见 AGENTS.md。3.2 PR 中必须提供的信息没有人能保证一段时间后还记得某个 PR 的细节。为了让团队能快速复盘每个 PR 必须附带以下四类信息Need需求想实现什么功能一般要指明关联的 IssueUpdating Reason更新理由与 Issue 不同这里简要说明为什么需要做这个修改以及背后的逻辑Related Testing相关测试简述修改涉及哪部分测试User Tips用户提示如果 PR 涉及 API 变更或潜在兼容性问题必须给使用者注意事项纯内部改动可省略此项。3.3 风格约束通过 ESLint 校验代码风格统一由 ESLint 把关修改后的代码必须通过 lint 检查本地执行$ npm run lint当前仓库的实际命令为lerna exec --ignore midwayjs/version -- mwts check即基于 mwts 基于mwts/eslint.config.js扩展而来并针对.ts/.tsx文件接入 TypeScript 项目配置parserOptions.project同时为 Jest 测试文件注入全局变量还关闭了no-namespace、no-wrapper-object-types等对框架代码不友好的规则。若需要自动修复可运行npm run lint:fix对应mwts fix。四、Commit Message 规范Angular 格式仓库推荐使用Angular commit-message-format编写提交信息目的是获得可追踪的历史和自动生成的 CHANGELOG。规范模板如下type(scope): subject BLANK LINE body BLANK LINE footer1type类型必选必须是下列取值之一feat新功能fixBug 修复docs仅文档变更style不影响代码含义的改动空白、格式、缺失分号等refactor既非修 Bug 也非加功能的代码重构perf性能提升test补充缺失的测试chore构建过程或辅助工具、库的变更如文档生成deps依赖更新2scope范围可选可以是任何能指明改动位置的标识如$location、$browser、$compile等。结合本仓库常见的 scope 例如core、web、plugin: session等。3subject主题用简洁的语言描述这次提交做了什么。4body正文如果 subject 不足以自解释可在正文补充目的或原因等更多内容。5footer页脚如果是 Breaking Change必须在此部分明确标注关联 Issue如Closes #1, Closes #2, #3若涉及旧功能或新功能的变更请关联doc与midway-init如midwayjs/midway-bin#123。完整示例fix($compile): [BREAKING_CHANGE] couple of unit tests for IE9 Older IEs serialize html uppercased, but IE9 does not... Would be better to expect case insensitive, unfortunately, jasmine does not allow to user regexps for throw expectations. Document change on midwayjs/midway#123 Closes #392 BREAKING CHANGE: Breaks foo.bar api, foo.baz should be used instead这套格式在仓库中已被严格执行AGENTS.md 明确要求 PR 标题必须使用标准提交格式如feat: xxx、fix: xxxlerna.json 的changelog.labels配置也将pr: breaking change、pr: new feature、pr: bug fix等标签映射为 CHANGELOG 中的分类条目说明 PR 标签与提交信息共同驱动变更日志的生成。五、Release语义化版本与分支策略5.1 分支策略Midway 基于semver语义化版本进行发布master分支是最新稳定版next分支是开发中的下一个稳定版所有新功能与 Bug 修复都会进入master或next分支安全问题除外以此激励开发者升级到最新稳定版若有 API 被废弃需在当前稳定版中标注deprecate旧版 API 应保持兼容直到下一个稳定版发布master分支不带发布 tag上层框架可按语义化版本与稳定版协作next分支打nexttag上层框架可通过midwaynext试用开发中的版本由 Milestone 决定LTS 版本凡列入 Milestone 的版本即为 LTS出现问题会持续打补丁。5.2 发布策略与 PM 职责每个稳定版发布会指定一名 PM发布经理分阶段负责准备阶段建立 Milestone确认 Issue 与 Milestone 关联指派并更新 Issue从master创建next分支并打nexttag。发布前确认性能测试通过当前 Milestone 内的所有 Issue 已关闭或可推迟到后续版本打开 Release Proposal MR撰写History参考 Node.js 的 CHANGELOG 写法并同步修正文档中与该版本相关的内容。提交可自动生成$ npm run commits提名下一稳定版的 PM。发布中所有上述 tag 都指在package.json中为 npm 添加的 tagpublishConfig: { tag: next }5.3 仓库中的发布实现在真实仓库中发布流程由 scripts/publish.sh 与 package.json 中的脚本承接可直接对照理解npm run release执行sh scripts/publish.sh先构建build.sh并生成 skill-midway 产物随后lerna version统一提升版本lerna publish from-git发布所有变更包最后调用 scripts/create_github_release.js 从 CHANGELOG.md 中截取当前版本章节通过 GitHub API 创建或更新 Release需要环境变量GITHUB_AUTH或GITHUB_TOKENnpm run beta/npm run next/npm run canary分别对应sh scripts/publish.sh beta|next|canarybeta 使用--dist-tag beta全量强制发布next 使用--dist-tag nextcanary 则先提升 major 版本再以--canary --preid alpha --dist-tag alpha发布预发布版本——这正是上文「next分支打nexttag」策略的落地实现版本号本身由 lerna.json 维护当前为4.2.3lerna 的publish.ignoreChanges配置确保纯文档、测试、站点等改动不会触发不必要的包发布。5.4 版本记录与回滚机制发布过程中scripts/generate_version.js 会执行lerna ls --json汇总所有子包版本写入packages/version/versions/{decorator核心版本}-{core核心版本}.json并去重追加多版本记录同时更新 packages/version/index.js 的时间戳与核心版本快照scripts/generate_changelog.js 则调用npx lerna-changelog --nextVersion生成当前版本的变更日志并插入 CHANGELOG.md 顶部。此外scripts/generate_rollback.js 会对比本地与 npm 上已发布版本的差异为每个新版本生成回滚脚本存放在 scripts/rollback 目录便于发布异常时快速将latesttag 恢复至上一版本——这套「版本快照 自动 CHANGELOG 一键回滚」的组合构成了 Midway 发布链路的完整闭环。六、协作规范的仓库佐证小结规范章节仓库中的对应实现Issue 标签体系lerna.json 的changelog.labels映射pr: 系列标签测试要求package.json 的test脚本lerna run test与 AGENTS.md 的组件测试要求Lint 约束package.json 的lint/lint:fix脚本与 eslint.config.js 的 mwts 配置Commit 格式AGENTS.md 对 PR 标题格式的硬性要求分支与 tag 策略scripts/publish.sh 中 beta/next/canary 的--dist-tag实现版本与 CHANGELOGscripts/generate_version.js、scripts/generate_changelog.js、scripts/generate_rollback.js这套从 Issue 报告、PR 提交、Commit 规范到版本发布的完整协作链路既保证了 Midway 这个大型 monorepo 在众多贡献者协作下的代码质量与历史可追溯性也让自动化工具链Lerna、CHANGELOG、版本快照能够稳定运转。对于希望向 Midway 贡献代码的开发者而言遵循本指南即可快速融入其协作节奏。赞分享后端微服务云原生【免费下载链接】midway A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 项目地址https://gitcode.com/gh_mirrors/mi/midway点击查看免费下载相关推荐MoviePilot 协作与发布规范Commit 约定、分支策略、版本管理与 CI/CD 发布流程全解析MoviePilot 协作与发布规范Commit 约定、分支策略、版本管理与 CI/CD 发布流程全解析 导读 本文基于 MoviePilot 仓库中 doc后端AI AgentMCP 服务AI 技能Rayburst 工程协作指南从架构约束到发布流程的 Agent 开发规范全解析Rayburst 工程协作指南从架构约束到发布流程的 Agent 开发规范全解析 本文以 Rayburst 仓库根目录的 AGENTS.md https://桌面应用网络TensorBoardX 仓库工程规范实战指南发布流程、版本管理、环境约束与本地测试TensorBoardX 仓库工程规范实战指南发布流程、版本管理、环境约束与本地测试 导读 本文以 tensorboardX 仓库根目录下的 AI_tool.机器学习数据可视化上一篇从零开始掌握Slint构建跨平台原生GUI的终极指南下一篇Scaffold-ETH多语言支持i18n集成与前端文本国际化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
前端CI流水线构建缓存深度调优:GitHubActions与TurboCache 前端CI流水线构建缓存深度调优:GitHubActions与TurboCache在大型前端 Monorepo 工程或独立全栈产品的持续集成(CI/CD)发版流程中,“每次提 PR 或发版时 CI 流水线构建极其漫长(超过 8~12 分钟)” 是摧毁团队… · 2026/9/27 8:46:17
网站建设公司营销推广:3个报价策略让客户秒懂价值 网站建设公司营销推广:3个报价策略让客户秒懂价值 不会写代码?想做网站又怕被坑?先别急着问建站报价。 很多老板找网站建设公司营销推广时,第一反应是“最便宜多少钱”。但真相是:低价往往意味着模板堆砌、无SEO优化、后期维护扯皮。真正的痛点不是… · 2026/9/27 8:46:11
产业资本运作之县域经济底层逻辑 产业资本运作之县域经济底层逻辑何伏 融通资管 投资合伙人县域经济产业资本运作,底层逻辑从来不是“资本砸出一个产业”;是“资本激活本地禀赋,长出一个产业”。别追风口,追禀赋。风口三年一变,禀赋百年不变。别拼… · 2026/9/27 8:46:11
3步搞定怎么做网站的学校的大图,兼顾性能优化与防黑 3步搞定怎么做网站的学校的大图,兼顾性能优化与防黑 昨天凌晨两点,我手机突然疯狂震动。老客户张总打来电话,声音都变了调:“你快看看,咱那个学校官网怎么全变了?全是博彩广告,点进去全是挂马链接!家长群都炸了,说我们被黑了!”… · 2026/9/27 9:31:35
第245篇_出入境政策与口岸通关信息采集 【Python爬虫实战】第245篇:政务信息怎么抓——出入境政策与口岸通关信息采集实战 所属专栏:【Python爬虫实战】从零到企业级爬虫工程师(CSDN 付费专栏) 本篇篇目:第 245 篇(政务与公共信息采集专场,每篇都是一个可独立上手的实战项目) 难度等级:中级,需要掌握 reque… · 2026/9/27 9:31:29
网站业务员好做吗?拆解3个最佳实践避坑指南 网站业务员好做吗?拆解3个最佳实践避坑指南 网站做好了没人访问,这大概是做建站销售最头疼的事。很多新人觉得,只要网站做得漂亮,客户就会买单,结果发现根本卖不出去。其实,这背后涉及的是 最佳实践… · 2026/9/27 9:31:11
IDEA按照JSP Model2思想实现用户注册功能 【任务目标】
按照JSP Model2思想编写一个用户注册程序。
组件关系图如下: (1)UserBean: 封装用户信息的JavaBean。 (2)RegisterFormBean是封装注册表单信息的JavaBeanl,用于校验从ControllerServlet中获… · 2026/9/27 9:31:04
CSS 代码格式化在线工具,前端样式调试整理小工具 一、前言
在前端日常开发工作中,我们经常会接触压缩后的 CSS 代码。线上为了减少资源体积,CSS 文件通常会去除换行、空格和缩进,全部合并为单行文本。
当我们需要分析第三方样式、排查样式冲突问题、阅读线上 CSS 源码时,面对挤… · 2026/9/27 9:30:58
使用docker-compose部署项目(mysql、springboot、vue、nginx) 结合前面几篇文章:
9.如何将jar包打包成docker镜像并进行部署 10.docker如何部署一个前端网站
docker系列文章: https://blog.csdn.net/baidu_32523857/article/details/135212681 这篇文章我们使用docker-compose来部署项目。
docker-compose是一个编… · 2026/9/27 9:30:58
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01