ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从 v1.0 到 5.3:基于 CHANGELOG.v1-5.md 复盘 Storybook 前五个主版本的演进脉络

从 v1.0 到 5.3:基于 CHANGELOG.v1-5.md 复盘 Storybook 前五个主版本的演进脉络 从 v1.0 到 5.3基于 CHANGELOG.v1-5.md 复盘 Storybook 前五个主版本的演进脉络CHANGELOG.v1-5.md 是 Storybook 仓库中归档 v1.0.0 至 5.3.72016 年至 2020 年 1 月全部发布记录的单一文件共 10000 余行、600 余个版本条目。本篇以该文件为核心逐条复盘 v1、v2、v3、v4、v5 五个主版本的关键变更与发布节奏并结合当前仓库中 CHANGELOG.md、MIGRATION.md 和code/目录结构交叉印证帮助你把这份历史档案变成可检索、可验证的演进时间线。这份变更日志在仓库中的位置与体例当前仓库主干版本已进入 10.5.x见 CHANGELOG.md 首行## 10.5.10把历史发布记录拆分管理CHANGELOG.v1-5.md覆盖 v1.0.0 到 5.3.7 的完整历史是本篇的解读对象CHANGELOG.md记录 10.x 近期版本MIGRATION.md各主版本间的破坏性变更与升级说明5.0/5.2/5.3 条目在文中均被显式引用。从文件体例看这份变更日志有四个可复用的书写特征SemVer 预发布通道分层每个##标题对应一个版本号稳定版如## 5.3.0与预发布版5.3.0-alpha.*、5.3.0-beta.*、5.3.0-rc.*并列记录。以 5.3.0 为例条目从5.3.0-rc.14 (January 11, 2020)一直回溯到5.3.0-alpha.0完整保留了 alpha → beta → rc → stable 的迭代链按类别分组每个版本条目下按### Features、### Bug Fixes、### Maintenance、### Dependency Upgrades等小节组织便于定位某一类改动逐条挂 PR 编号每条变更都附带 Pull Request 编号例如 [#9538] 类引用使任何一条记录都能追溯到具体代码评审这是该档案“可验证”的关键依赖升级折叠收纳在 v3.0.0 等大版本中依赖升级列表被包进details/summary折叠块见 CHANGELOG.v1-5.md#L9333-L9352正文保持可读性。稳定版条目通常先给一段“高亮摘要”再引导读者去翻对应的预发布条目。例如 5.3.0 条目开头即声明四大亮点并提示“5.3 contains hundreds more fixes, features, and tweaks. Browse the changelogs matching5.3.0-alpha.*,5.2.0-…”原文为Browse the changelogs matching5.3.0-alpha.*,5.3.0-beta.*, and5.3.0-rc.*CHANGELOG.v1-5.md#L54-L63。v1.x2016奠定“开发工作台”基础能力文件末尾记录了项目最早期的版本CHANGELOG.v1-5.md#L10153-L10235。这一阶段的变更以单条功能说明加 PR 编号为主代表性条目包括v1.10.0加入搜索框search box、静态文件构建器static file builder、iframe 内自定义 head同一版本还修复了“渲染前先 unmount”的问题Fix: #81v1.10.2静态构建支持自定义 head、改用相对 URL 以便托管在带路径前缀的位置如 GitHub Pages、用特性检测识别 SyntheticEvent因为 UglifyJS 压缩类名后无法按类名检测v1.11.0支持 React DevToolsv1.12.0ActionLogger 增加清除日志按钮、增加 JSX 支持v1.3.0手动加载.babelrc修复 #41、增加npm run dev开发脚本v1.4.0 / v1.5.0CLI 支持指定 config dir、支持大部分自定义 webpack 配置PR64v1.8.0故事间跳转story linking能力v1.0.0全文只有一句“Yeah!”并紧随其后是 v1.1.0 的说明——“v1.0.0 was a mistake and it contains very old code”这是理解早期版本号不连续的一个直接证据。从这些条目可以确认v1 阶段的核心工作是把“浏览组件”升级为“可搜索、可静态构建、可自定义 webpack 与 babel 的开发工作台”。v2.0.02016-08-01默认构建链对齐 create-react-appv2.0.0 条目CHANGELOG.v1-5.md#L9867-L9879说明其定位是“almost compatible withv1.x.xbut defaults have been changed”主要变更是把默认配置对齐 create-react-app引入基于 postcss 的 CSS loader引入file-loader处理图片等常见资源类型、url-loader处理更小的媒体文件不再预构建 managerStorybook UIbundle保留 babel stage-0 preset 支持并增加 es2016 preset同步升级kadira/storybook-ui到 v2.6.1 以消除部分 React 警告。值得注意的是条目中出现的包前缀kadira/storybook-ui——这正是下一主版本要解决的品牌问题。v3.0.02017-05-31社区化、Webpack 2 与 monorepo 改造3.0.0 被明确标注为“first fully community-driven release”CHANGELOG.v1-5.md#L9276-L9287头部摘要列出了五项结构性变化从kadira命名空间整体迁移到新的 Storybook 组织GitHub、npm、docs 全线换名升级至 Webpack 2切换到 monorepo 并重构包结构PR #749、#1031其中 #1031 标题为 “CHANGE folder structure CHANGE package-names”快照测试增加配置项snapshotWithOptions、自定义test函数增加create-react-native-app支持与 dev server HTTPS 选项。其 Features / Bug Fixes / Maintenance 小节进一步确认了工程化细节build-storybook不再支持相对路径#1058、CLI 不再硬编码包版本改为查询 npm registry#1079、内置 addonslinks、actions被弃用改为不再默认引入#1038等。与当前仓库的对应关系从源码结构看本仓库code/目录下按core/、renderers/、frameworks/、addons/、builders/、presets/、lib/分包的组织方式与 v3 时期确立的 monorepo 包结构一脉相承。换言之今天你看到的目录划分其“第一块砖”就记录在 3.0.0 的这两条 PR 里。v3.4.02018-03-30多框架 Storyshots 与 Storysource3.4.0 的头部摘要CHANGELOG.v1-5.md#L5709-L5721给出五个重点Polymer 2 支持#2225Angular 与 Vue 的 storyshots#2564addon-storyshots 支持图片快照#2413多故事层级multiple story hierarchies#2452新增 addon-storysource在 addon 面板中展示故事源码#2885。Features 小节还包含若干后来长期沿用的机制build-storybook增加 watch 模式#2866、Full Control Mode 下将默认 webpack 配置作为第三个参数传入#2796、面向外部工具的__STORYBOOK_CLIENT_API__#3058、addon-info 的代码示例复制按钮#2713等。可以看到 3.4 是“文档与测试类 addon 生态成型”的版本。v4.0.02018-10-29Webpack 4 / Babel 7 与渲染器扩张4.0.0 条目CHANGELOG.v1-5.md#L4447-L4477是全文信息密度最高的稳定版摘要之一按领域列出构建工具Webpack 4#3148、Babel 7#3746视图层一次性新增 Ember、MarkoJS、Mithril、HTML snippets、Svelte、Riot 六个渲染器#4237、#3504、#3244、#3475、#3770、#4070移动端移动端视图可用 ☰ 按钮切换 stories 面板#3337React Native 移除 packager#4261、支持 on-device addons#4381、#4327UI主题定制theming#3628CoreStory parameters#2679、通用 addon decorators#3555、css-modules 支持#4405、start-storybook首次编译完成即打开浏览器#4149、端口占用时提示替代方案#4146、无 CLI 的 Node API#4344CLI重命名为sb#4345。该条目同时指出完整清单需查4.0.0-rc.*与4.0.0-alpha.*条目并指向迁移文档仓库中的 MIGRATION.md 即这份迁移指南的延续维护版本。从源码结构看本仓库code/frameworks/下的vue3-vite/、svelte-vite/、nextjs/等框架包正是这一时期“渲染器矩阵”思路的继承与扩展。紧随其后的4.1.02018-12-12CHANGELOG.v1-5.md#L4131-L4142则以性能与兼容性为主题manager/preview 拆分带来的性能优化与冷启动、重建提速#4834、React 全版本支持#4808、新增 CSSResources addon 动态增删 CSS#4622、基于 CRA 选择 babel presets/plugins#4836、react-scripts 的 TypeScript 支持#4824。v5.0.02019-03-05全新 UI 与 URL 结构5.0.0 条目CHANGELOG.v1-5.md#L3337-L3348列出了六项全新 UI 改进全新设计支持浅色/深色主题Canvas toolbar快速访问 addons重做导航侧边栏与菜单重设计的 addons 面板含可见性与方向的开关按钮改进且可用户配置的键盘快捷键新 URL 结构消除一长串查询参数。同样条目提示完整变更需回溯5.0.0-alpha.*/beta.*/rc.*条目并从4.x升级需阅读迁移指南MIGRATION.md。v5.1.0 的一个“事故记录”条目正文只有一行“Publish failed”CHANGELOG.v1-5.md#L2258-L2260。这类失败发布记录如 5.3.0-rc.2 的 “Failed NPM publish”是变更日志的诚实体现——版本号占位但内容未发布阅读时需注意不要把这些当作可用版本。v5.2.02019-09-13DocsPage 与 CSF35.2.0 摘要CHANGELOG.v1-5.md#L1234-L1243列出四个关键词DocsPage零配置文档页Component Story Format故事文件成为可移植的 ES6 模块即 CSF3当前仓库文档中仍在使用这一格式Design System 最佳实践Addon API基于 hooks 的简化版 addon 开发 API。这一版本奠定了此后多年“文档即组件页面”的产品形态。其预发布条目跨度极长5.2.0-alpha.0至5.2.0-beta.48是观察一个功能从 alpha 打磨到 stable 全过程的最佳样本。v5.3.02020-01-11MDX 文档与 main.js 声明式配置5.3.0 摘要CHANGELOG.v1-5.md#L54-L63给出四大亮点基于 MDX 的自定义文档多框架React、Vue、Angular、Web Components、Ember的 DocsWeb Components 框架支持main.js声明式配置。其中“main.js声明式配置”的实现基础被记录在5.3.0-rc.6 (December 31, 2019)条目中该版本说明这是对main.js所谓 tri-config的“significant change”将 presets/registers 合并进addons字段大幅简化 addon 与 preset 的注册方式CHANGELOG.v1-5.md#L142-L148。这一设计直接演化为此后版本中.storybook/main.*的配置形态也解释了 MIGRATION.md 中关于 main 文件必须为合法 ESM 等升级要求的历史渊源。5.3 系列的稳定补丁版5.3.15.3.7则展示了典型的维护节奏围绕 Core 的 addon/preset 检测、默认故事排序、HMR、legacy URL 修复以及 Source-loader 对生成代码关闭 lint 等问题的小步修复CHANGELOG.v1-5.md#L1-L52。如何使用这份历史变更日志结合上文梳理出的体例这份档案有三种实用读法按功能溯源当你要弄清某个机制如 story parameters、docs 页、main.js 配置是何时引入、如何演进时直接在该文件中搜索关键词再顺着 PR 编号理解引入动机。例如 “story parameters” 命中 4.0.0 摘要中的 #2679按版本升级核对从4.x或5.x旧版本升级时先读对应稳定版摘要再对照 MIGRATION.md 中相应章节的破坏性变更变更日志回答“改了什么”迁移指南回答“需要动什么”按预发布链观察打磨过程每个主版本都有完整的 alpha/beta/rc 序列功能条目往往先在 alpha 中出现、在 rc 中修边界问题、在 stable 中定稿。例如__orderedExports/__namedExportsOrder这类 CSF loader 机制就分别记录在5.3.0-rc.0与5.3.0-rc.9中反映了 API 在定稿前的调整轨迹。需要说明的适用前提本文件是历史归档其中描述的包名如kadira/*时期前缀、配置形态config.js/main.js的早期字段均不适用于当前 10.x 主干当前版本的变更请以 CHANGELOG.md 为准跨版本升级请以 MIGRATION.md 为准。但该文件作为 Storybook 前五个主版本的第一手发布记录其条目与 PR 编号至今仍可逐条核验。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表