javascript - 在开发中使用哪个 React TypeScript 版本?
问题描述
我有一个现有的 TypeScript React 项目,该项目是在 React 中存在 Hooks 之前创建的,我正在尝试使用 Hooks 重写所有类。
因此,在我的 中package.json
"devDependencies"
,我将typescript
react 的版本从更改7.0.6
为@types/react-redux": "7.1.16"
。我会想象我想要完全相同版本的 react in "dependencies"
,但似乎没有7.1.16
for react-redux
,只有7.1
and 7.2
。我选择了7.2
它似乎有效。
"react-redux"
更广泛地说,我想知道如果我在开发和生产依赖项之间使用不同版本的版本,我如何确定不会出现版本控制问题?
我还想知道我是否需要同时使用"@types/react-redux"
而"devDependencies"
不是"dependencies"
just "react-redux"
?
解决方案
@types
软件包与相应的原始软件包的版本不同是很常见的。只需使用两者的最新版本,你通常会很好,因为@types
包只包含类型定义而没有运行时代码。
由于您可能无论如何都在构建和捆绑结果,因此某个东西是依赖项还是 devDependency 并不重要,这种区别主要是一种组织上的区别,没有任何现实生活后果。
更新:
这里有两种不同的场景,其中 devDependencies 发挥作用:
- 你写一个库。在这种情况下,对于安装所述库的人,只会
dependencies
安装,对于检查您的源并运行的人npm install
,两者都将是。 - 您有一个环境来运行您的代码并使用
npm install --production
. 在这种情况下,devDependencies
将不会安装。
由于您正在构建一个反应应用程序,因此您很可能只运行过npm install
- 并且安装了依赖项和 devDependencies。由于在这种情况下两者都安装在硬盘驱动器上的同一文件夹中,因此从那时起无法区分哪个是哪个,因此npm start
只会npm run dev
使用当前安装的软件包。
推荐阅读
- matlab - 如何解决Matlab中关于drawcircle的错误?
- data-structures - 对于这些情况,最合适的数据结构是什么?
- r - 在 R 中的 highchart 地图上绘制任意线(图书馆 highcharter)
- excel - 一个数据透视图我们可以使用两个不同的切片器或数据。动态显示
- laravel - DOM/PDF 错误 - 不应静态调用非静态方法 Barryvdh\DomPDF\PDF::download()
- java - 如何在 Gradle 5.x 中准备插件依赖树?
- jquery - 我不能将列表项(导航)放在标题中
- java - 如何使用 Java 从另一个活动中启用按钮?
- azure - 嵌套模板在 Azure Arm 模板中出现错误
- node.js - 为什么在分隔路由时使用 express.Router()