我有一个现有的项目,根据它有react@15
及其所有依赖项。但现在我必须升级到react@16
以及它的依赖项。现在,问题是 - 有很多依赖项,识别每个依赖项的版本非常耗时。
所以,我想知道是否有一种方法可以升级package.json
中提到的React版本及其依赖项,而无需手动修改package.json
文件。
答案 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
。
使用纱线
最新版,同时仍然尊重package.json中的semver :yarn upgrade react
。
最新版本,无论您的semver如何:yarn upgrade react@latest
。
答案 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