【问题标题】:correct version compatibility matrix for expo, npm, node, react-native, typescript?expo、npm、node、react-native、typescript 的正确版本兼容性矩阵?
【发布时间】:2022-02-13 03:43:21
【问题描述】:

我正在做我运行的react-native typescript setup

npx react-native init MyApp --template react-native-template-typescript

我安装了打字稿

npm install -g typescript
  • 'npx --v' -> 6.14.15
  • 'npm 查看 react-native 版本' -> 0.67.2
  • 'npm 查看打字稿版本'-> 4.5.5
  • 'node -v' -> v12.22.9

然后立即,我从模板中得到错误 ->

node_modules/@types/node/globals.d.ts:47:11 - error TS2300: Duplicate identifier 'AbortController'.

47 interface AbortController {
    ~~~~~~~~~~~~~~~

    node_modules/@types/react-native/globals.d.ts:435:15
    435 declare class AbortController {
    ~~~~~~~~~~~~~~~
    'AbortController' was also declared here.

一旦我解决了这个问题,我的下一个问题就是让所有developers use the same tool versions 避免这种依赖地狱。唯一处理 dep hell 的将是进行升级的人。其他人都希望能神奇地改变他们的工具和库版本!!!

【问题讨论】:

  • 您在哪个操作系统上安装?这些信息也很有用。
  • MAC 操作系统 12.1。我怀念 java 的日子,那里的兼容性变得如此简单。这些东西让我想起了 ruby​​ 以及总是遇到兼容性问题的混乱。
  • 任何具有所有兼容版本设置的教程都会很棒,而不是只安装可能不兼容的最新版本。有这样的教程吗?大多数教程都安装最新版本,这很可能导致以后无法正常工作。
  • 顺便问一下,兼容性矩阵到底是什么意思?
  • 3rdparty libC 有版本 3 和版本 4。libA 依赖于版本 3,而 libB 依赖于版本 4,微服务 A 依赖于 libA 和 libB。同样的情况一直发生在工具中,不同版本不能很好地协同工作,或者工具不能很好地与当前的 package.json 格式或 javascript 源代码文件(即不同的 typescript 版本)配合使用。

标签: node.js typescript react-native npm npx


【解决方案1】:

嗯,今天我跑了

npx react-native init MyApp --template react-native-template-typescript

在另一个目录中运行 'tsc' 工作

tsc 仍然无法在其他 MyApp 目录中工作,并且比较显示了很多不是不同版本的东西。我不知道为什么,但我猜这是一个“始终使用最新版本”的问题。至少模板锁定了一个版本(我认为),所以版本不会在我的工作项目中改变(我希望)。

【讨论】:

  • 如果我没记错的话,基于 node.js 的 React Native 项目也有一个 package.json。因此,如果您使用另一个 package.json-lock,摩擦“node ci”应该安装包含在该文件中的确切依赖项,将这些依赖项排除在相同的版本号上,而不是您在上面评论中写的最新版本,不保证会是在旧的环境中稳定。
  • @CarmineTambascia 好吧,我不确定。唯一的区别是我运行命令的顺序和运行它们的那天,两个项目在从模板生成的 package.json 中都有不同的版本。一个可以用 typescript 编译,另一个不能。所以一个 package.json 有一个不兼容的版本列表。
  • 所有教程在正确设置节点和 npm 以及一般工具方面都非常糟糕,而不是我最终认为我可能已经找到了一个好的引导程序。 javascript.plainenglish.io/…
  • 我不知道“教程”中的内容,因为它是付费内容。然而,我们在这方面所知道的教程很快就会过时,尤其是它们隐藏或认为理所当然的许多部分,只关注他们所教的内容。总的来说,我确实相信了解 npm 的工作原理是一个好的开始。我会检查很多人指出许多有趣部分的地方,如果您有一个项目已经“开始”,请选择 npm ci 而不是 npm install stackoverflow.com/questions/52499617/…
  • 如果您“遵循”教程并且 package-lock.json 可用(应该包含在项目中以运行与项目,所以抓住放在你的 src 中的文件并运行 npm ci
猜你喜欢
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 2021-08-13
  • 2018-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
相关资源
最近更新 更多