上周,项目作者 Marak Squires 主动删除了开源库「faker.js」的所有代码,导致数千个应用程序无限输出乱码。此事迅速掀起开源社区热议。由于此事给开源社区造成了巨大损失,为了恢复使用 Faker 的功能,现在一个由 8 位开发者组成的团队决定维护一个新项目 faker-js/faker。
项目地址:https://github.com/faker-js/faker
维护团队表示经过他们的努力,「faker.js」主包被删除之后依然可以在产品中使用 Faker。目前维护团队已做出的努力包括:
- 在 faker-js/faker 项目下为新的 Faker 包创建了一个 GitHub org;
- 在 npm 上 faker-js/faker 中发布了所有以前的 Faker 版本;
- 发布了 6 Alpha 版本;
- 几乎完成了向 TypeScript 的迁移,因此 DefinitelyTyped 不再需要维护其外部 types/faker 包;
- 创建了一个公共 Twitter 帐号,用于社区交流;
- 发布了首个官方 Faker 文档网站:https://fakerjs.dev/
- 清理了 Prettier、CI、Netlify Deploy Previews 和 GitHub Actions 等工具;
- 完成了大量问题分类和 PR review。
值得注意的是,在此之前,Faker 从未有过官方文档网站,只有由 Jeff Beltran 维护了 3 年的非官方 faker.js 文档。而此次官方文档正是基于 Jeff Beltran 的非官方文档创建的。此外,该维护团队已经与社区管理平台 Open Collective 取得联系,并讨论了该项目的过渡计划。
该维护团队计划全面扩展和持续开发 Faker,并将制定一套完整的路线图,预计将包含如下改进:
- 支持 ESM;
- 将 Browserify 转变为 Rollup/Vite;
- 改进测试基础设施;
- 提供 typegen 文档;
- 保持与 Faker 生态系统的现有维护者进行互动;
- 文档中提供交互式 Playground;
- ......
此外,该研究团队表示 Faker 项目的原始赞助商将持续为新项目提供支持。
开源社区内的开发者们对于此次维护基本持支持态度。根据该维护团队统计的数据,在项目基本完成合并后,新项目的 star 量一路攀升。
图源:https://twitter.com/faker_js/status/1481918305669627905
但也有人认为这种「打包式」维护,似乎是在利用 faker.js 的原始项目谋取利益:
同时也有人从开源角度分析道:「这说明没有人是不可替代的。开源本不该用于谋生,只能是开发者用额外的时间和热情去做出贡献。」
也许在「开源」这件事上,我们还有很多值得讨论和改进的地方。但毫无疑问,开源精神是值得尊重和发扬的。