Description
react-web 项目目前处于不活跃状态,如果近期没有跟上主库发展,我可能得考虑项目的风险,转投 react-native-web 了,当然目前 react-native-web 我觉得还差一大截,但未雨绸缪。
提议1:增加 storybook
目前各自有一些修复、修改,没有合适的途径验证,相互也基本不会做验证,除非影响了自己使用才会发现问题。在没有单元测试和其它有效测试手段的情况下,提议增加 storybook 作为测试用例,新的提交先添加 story 做一次提交,后面的实现代码做一次提交,方便重现问题和验证兼容性。storybook 在我们自己的项目中使用效果很好。react-native-web 也使用了 storybook: http://necolas.github.io/react-native-web/storybook/
还有几个其它的实现 react-native 运行在 web 的项目,react-web 是显示效果最接近的,也是生成 dom 可读性最高的。
目录结构方面,单独使用一个目录和 package.json,避免污染主项目(Examples 里的项目也可以整理一下,把部分依赖从主项目去除)。react-native 和 web 共享 stories,根据自己的设备情况,至少应该在 web 和其中一个 native 平台(iOS 或 Android)运行。共享 stories 还方便检验 react-web 和 react-native 的显示和功能差异,便于修复,让它成为更优秀的“仿真”平台。
比如我修复了 scrollEnabled 默认值,需要有个用例验证问题,并验证修复,同时需要尽可能多几个用例检验对其它场景是否有破坏。
另一个好处是 stories 紧跟 react-native 主库的修改,哪怕目前没有实现,至少有个用例等实现后去验证。
PR验证步骤:
- 切换到PR里添加 story 的提交记录,验证问题。
- 切换到最新提交,验证修复情况和兼容性。
- 如果是不兼容的提交可以例外,比如引入一个 break change。
为了不增加太大负担,每次 PR 建议增加 storybook 而非强制项,鼓励 Bug 提交者写出 story。
提议2:Features/Bugs 列表
由于 react-web 已经停止很久了,可能有很多库和主库相差很大,增加一个待实现/修复的 Features/Bugs 列表,方便了解情况并根据自己的时间和对自己项目的影响优先选择。
提议3:增加 CI
用来测试构建是否成功,有无语法错误。