使用 CI 为 React-Native、TypeScript、NodeJS 设置适当的开发环境

2023-12-20

不幸的是,我们有不同的 Nodejs 版本的项目。我不确定这是否像java一样,我可以安装多个jdks(安装多个nodejs)并且每个项目通过配置文件神奇地使用正确的版本?此外,教程中的大多数命令在安装工具和库时不包括版本号,如下所示

  • npm install -g expo-cli (工具)
  • npm install @react-navigation/native (库)

来自带有 gradle 包装器的 gradle,团队中的每个人都使用 build.gradle 文件中定义的工具和库版本,这对我来说很奇怪。在 gradle 世界中,团队中的每个人都使用完全相同的 gradle 版本(gradle 本身确保如果一个人在存储库中升级它,每个人都会获得升级并在同一版本上保持同步)。然后是插件/工具,定义了这些版本,然后定义了库和这些版本。

  • 如何保证每个人都使用相同的 npm、node、expo 等工具?
  • 如何保证每个人都使用相同的库?
  • 如何保证每个人都使用相同的打字稿?

理想情况下,我们升级存储库中的任何这些内容以及对升级的任何修复,因此在结帐时,开发人员开始使用新工具+新的 *.tsx 文件,因此它就像在 gradle 世界中一样无缝。在gradle中,我升级了

  • 通过属性的版本
  • 插件/工具的版本
  • 构建.gradle 文件
  • 任何源代码文件

并检查所有内容作为一个单元,以便任何签出的开发人员都一起使用所有正确的版本。我希望在我们的 ios/android 移动项目中使用 React-native 或尽可能接近它。

我之前曾对一些东西进行过黑客攻击,例如将“ant”安装到 git 存储库中,这创造了奇迹(尽管这是一种丑陋的黑客攻击),每个人都使用存储库中的工具而不是操作系统上的工具。也许有办法做到这一点?

随着人们随着时间的推移升级库,一个包含二进制文件的臃肿的存储库值得它的黄金重量,以防止版本兼容性地狱。不仅如此,我们发现工具错误更容易追踪,因为我们可以恢复存储库。不仅如此,我们还可以重现 1 年前的构建,因为工具已恢复,而今天的 npm 工具由于所有更改而无法构建 1 年前的东西。优点不断堆积,我什至记不清全部了。

通过像 gradle 包装器这样的引导程序或完整的东西从存储库运行的工具通常是最好的选择,直到完整的东西真的变得臃肿,但即使如此,将其锁定到另一个工具存储库上的哈希可能会更好

欢迎任何想法让我的团队使用所有相同的工具(对于从另一个项目加入公司或团队的人来说非常有用,并且不需要安装太多)。

谢谢, 院长


应通过删除 package.json 中的所有脱字符和波浪号并指定确切的版本来处理 Typescript 和库。

其余的一种低开销可能性可能是 shell 脚本和私有包存储库。您可以在内部托管要安装的版本,并通过 cURL 获取全部内容。

或者您可以在 npm 预安装中添加一些简单的脚本,例如nvm use 12.2.1应该通过错误消息引导用户安装 nvm 并使用正确的版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CI 为 React-Native、TypeScript、NodeJS 设置适当的开发环境 的相关文章

随机推荐