通过阅读package.json升级React版本及其依赖项

时间:2018-04-14 06:08:48

标签: reactjs dependencies upgrade

我有一个现有的项目,根据它有react@15及其所有依赖项。但现在我必须升级到react@16以及它的依赖项。现在,问题是 - 有很多依赖项,识别每个依赖项的版本非常耗时。

所以,我想知道是否有一种方法可以升级package.json中提到的React版本及其依赖项,而无需手动修改package.json文件。

12 个答案:

答案 0 :(得分:30)

使用npm

最新版本,同时仍然尊重package.json中的semver npm update <package-name>。 所以,如果你的package.json说"react": "^15.0.0"而你运行npm update react,你的package.json现在会说"react": "^15.6.2"(当前最新版本的反应15)。

但是既然你想从反应15到反应16,那就不行了。 最新版本,无论您的semver如何:npm install --save react@latest

如果您需要特定版本,请运行npm install --save react@<version>,例如npm install --save react@16.0.0

here

使用纱线

最新版,同时仍然尊重package.json中的semver yarn upgrade react

最新版本,无论您的semver如何:yarn upgrade react@latest

https://docs.npmjs.com/cli/install

答案 1 :(得分:7)

我发现了一个不错的 article here

我们需要做的(对于 npm,全局)是:

sudo npm install -g npm-check-updates

然后像下面这样运行它:

ncu -u

它将很好地向您显示所有依赖项(已升级),如下所示:

Upgrading /home/ajay/Documents/react-beast/package.json
[====================] 7/7 100%

 @testing-library/user-event  ^11.4.2  →  ^13.0.16     
 react                        ^17.0.1  →   ^17.0.2     
 react-dom                    ^17.0.1  →   ^17.0.2     
 react-scripts                  4.0.1  →     4.0.3     
 web-vitals                    ^1.1.0  →    ^1.1.1  

在上面之后立即尝试再次运行 ncu -u,您将收到如下消息:

Upgrading /home/ajay/Documents/react-beast/package.json
[====================] 7/7 100%

All dependencies match the latest package versions :)

之后执行 npm install,您应该拥有项目的所有依赖项的所有最新版本。

对我来说,如果我们需要保持我们的 (npm/React) 项目 - 最新和最好 - 而不是浪费时间手动更新版本,这是最好和最干净的解决方案(好吧 - 在大多数情况下)。

答案 2 :(得分:5)

是的,您可以使用Yarn或NPM编辑package.json。

yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]

类似的东西:

yarn upgrade react@^16.0.0

然后,我会看到警告或错误,然后运行yarn upgrade [package]。无需手动编辑文件。可以从CLI完成所有工作。

或者只是运行yarn upgrade将所有软件包更新到最新版本,对于大型项目来说可能是个坏主意。 API可能会改变,事情可能会破裂。

或者,使用NPM运行npm outdated以查看将受影响的软件包。然后

npm update

https://yarnpkg.com/lang/en/docs/cli/upgrade/

https://docs.npmjs.com/getting-started/updating-local-packages

答案 3 :(得分:2)

我强烈建议使用yarn upgrade-interactive来更新React或与此相关的任何Node项目。它列出了您的软件包,当前版本,最新版本,与您所拥有软件包相比的次要,主要或补丁更新的指示,以及指向相应项目的链接。

您可以使用yarn upgrade-interactive --latest运行它,查看是否需要发行说明,使用箭头键在列表中向下移动,通过使用空格键选择要升级的软件包,然后按{{1} }完成。

Npm-upgrade还可以,但不那么光滑。

答案 4 :(得分:2)

如果要在现有的react步骤中更新react和react-dom版本,请运行此命令,希望您获得最新版本的react和react-dom。

谢谢

npm install react@latest react-dom@latest

答案 5 :(得分:1)

如果要从package.json更新任何特定版本,则可以通过==>

来更新软件包的版本。

纱线添加软件包名称@版本号

npm install-保存软件包名称@版本号

如果要将所有软件包更新为最新版本,可以运行命令==>

npm审核修复程序--force

答案 6 :(得分:1)

有些软件包是相互依赖的,并且要与彼此的相同版本一起使用……例如,最近 npm react@16.5.2 和 react-dom@16.5.2 出现了问题。我想使用钩子,但不能,所以我跑了:

npm update react@latest react-dom@latest

这没有用...进入了一些 react.js 博客/文档,发现这些特定的包是相互依赖的,并且版本必须相同。要更新这些:

npm uninstall react
npm uninstall react-dom

npm install react@^16.8.0 react-dom@^16.8.0

一切都很好。寻找稳定版本。阅读文档。 https://reactjs.org/blog/2019/02/06/react-v16.8.0.html https://reactjs.org/warnings/invalid-hook-call-warning.html

答案 7 :(得分:0)

您可以通过以下方式将所有依赖项更新为最新版本: npm update

答案 8 :(得分:0)

如果要更新React,请在终端上使用npx update react

答案 9 :(得分:0)

使用此命令来更新反应npm install --save react@16.12.0 不要忘记将16.12.0更改为最新版本或需要设置的版本。

答案 10 :(得分:0)

无需安装react,Linux/Mac 终端或Windows cmd 执行以下命令即可:

npx create-react-app my-app

my-app - 是一个可选名称,您可以随意命名。

它将为您的下一个项目创建更新的模板并准备就绪!

答案 11 :(得分:0)

你可以使用这个命令 npm install -g create-react-app 如果您没有 root 用户权限,则使用它 sudo npm install -g create-react-app