我有一个现有的项目,其中有 react@15和所有它的依赖关系,根据这一点。但是现在我必须升级到 react@16以及它的依赖项。现在的问题是——有很多依赖关系,确定每个依赖关系的版本非常耗时。
react@15
react@16
因此,我想知道是否有一种方法可以升级 React 的版本及其在 package.json中提到的依赖关系,而无需手动修改 package.json文件。
package.json
是的,您可以使用 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 [package]
或者仅仅运行 yarn upgrade来更新所有包到最新版本,对于一个大型项目来说可能是一个坏主意。API 可能会改变,事情可能会失败。
yarn upgrade
或者,使用 NPM 运行 npm outdated来查看哪些包将受到影响
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)。
npm update <package-name>
"react": "^15.0.0"
npm update react
"react": "^15.6.2"
但既然你想从15反应变成16反应,那就不行了。 最新版本,不管你的学期: npm install --save react@latest。
npm install --save react@latest
如果你想要一个特定的版本,你可以运行 npm install --save react@<version>例如 npm install --save react@16.0.0。
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
最新版本,不管你的学期: yarn upgrade react@latest。
yarn upgrade react@latest
我强烈推荐使用 纱线升级-交互式来更新 React,或者任何 Node 项目。它列出了您的软件包、当前版本、最新版本、小更新、大更新或补丁更新的指示,以及指向相应项目的链接。
你可以用 yarn upgrade-interactive --latest运行它,查看发行说明,用箭头键按下列表,用空格键选择要升级的软件包,然后按 Enter完成。
yarn upgrade-interactive --latest
Enter
Npm-update 是可以的,但不是那么光滑。
您可以通过以下方法将所有依赖项更新到它们的最新版本 npm update
如果要更新反应,请在终端上使用 npx update react。
npx update react
使用此命令更新反应 npm install --save react@16.12.0 不要忘记将16.12.0更改为您需要设置的最新版本或版本。
npm install --save react@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 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 install -g create-react-app
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-check-updates
npm install -g npm-check-updates
运行以下命令升级 package.json 文件中的所有版本提示。
运行以下命令安装升级后的软件包:
更多内容: https://flaviocopes.com/update-npm-dependencies/
npm install --save-dev @types/react@latest @types/react-dom@latest
yarn add react@latest react-dom@latest
yarn add @types/react@latest @types/react-dom@latest --dev