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

我有一个现有的项目,其中有 react@15和所有它的依赖关系,根据这一点。但是现在我必须升级到 react@16以及它的依赖项。现在的问题是——有很多依赖关系,确定每个依赖关系的版本非常耗时。

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

264117 次浏览

是的,您可以使用 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

使用 npm

您的 package.json: npm update <package-name>中的最新版本 同时还要尊重一个礼拜。 因此,如果 package.json 表示 "react": "^15.0.0",而您运行 npm update react,那么 package.json 现在将表示 "react": "^15.6.2"(最新版本的 response 15)。

但既然你想从15反应变成16反应,那就不行了。 最新版本,不管你的学期: npm install --save react@latest

如果你想要一个特定的版本,你可以运行 npm install --save react@<version>例如 npm install --save react@16.0.0

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

用纱线

您的 package.json: yarn upgrade react中的最新版本 同时还要尊重一个礼拜

最新版本,不管你的学期: yarn upgrade react@latest

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

我强烈推荐使用 纱线升级-交互式来更新 React,或者任何 Node 项目。它列出了您的软件包、当前版本、最新版本、小更新、大更新或补丁更新的指示,以及指向相应项目的链接。

你可以用 yarn upgrade-interactive --latest运行它,查看发行说明,用箭头键按下列表,用空格键选择要升级的软件包,然后按 Enter完成。

Npm-update 是可以的,但不是那么光滑。

您可以通过以下方法将所有依赖项更新到它们的最新版本 npm update

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

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

如果您想要更新 package.json 中的任何特定版本,您可以通过执行 = = > 来更新包的版本

纱线添加包装-名称@版本-号码

或者

Npm install —— save package-name@version-number

如果要将所有包更新到最新版本,可以运行 command = = >

Npm 审计修复——强制

如果你想在现有的反应步骤中更新你的反应和反应时间版本,那么运行这个命令,我希望你能得到最新的反应和反应时间版本。

谢谢

npm install react@latest react-dom@latest

我找到了一个不错的 文章

我们需要做的(对于 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)项目的最新和最好,而不是浪费时间手动更新版本,这是最好和最干净的解决方案(在大多数情况下)。

不需要安装反应,只需在 Linux/Mac 终端中执行以下命令,或在 Windows 中执行 cmd:

npx create-react-app my-app

My-app-是一个可选的名字,你可以给它取任何你想要的名字。

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

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

有些包是相互依赖的,可以与相同版本的其他包一起使用... ... 例如,最近出现了 npm response@16.5.2和 response-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

在终端运行命令来更新反应版本 $npm i response@next response-dom@next

  • 要更新到一个新的主要版本的所有软件包,在全球范围内安装 npm-check-updates软件包:

    npm install -g npm-check-updates
    
  • 运行以下命令升级 package.json 文件中的所有版本提示。

    ncu -u
    
  • 运行以下命令安装升级后的软件包:

    npm update
    

更多内容: https://flaviocopes.com/update-npm-dependencies/

和 NPM 一起

npm install react@latest react-dom@latest

只有在使用 TypeScript 的情况下

npm install --save-dev @types/react@latest @types/react-dom@latest

------------------------------

用 YARN

yarn add react@latest react-dom@latest

只有在使用 TypeScript 的情况下

yarn add @types/react@latest @types/react-dom@latest --dev