【问题标题】:How to update node js version in a react application [closed]如何在反应应用程序中更新节点 js 版本 [关闭]
【发布时间】:2022-07-31 18:02:36
【问题描述】:

现在我的反应应用程序在节点 12.16.3 上运行,但我正在尝试将其升级到节点 16.8.0

我已在 pakage.json 文件中更改节点版本并在本地升级节点

但是我收到了这个错误 UnhandledPromiseRejection - 这个错误源于在没有 catch 块的情况下抛出异步函数,或者拒绝使用.Catch() 处理的承诺。承诺被拒绝的原因是 CSRF - 没有设置令牌运行 init() "ERR_UNHANDLED_REJECTION

【问题讨论】:

  • 通常使用操作系统包或nvm等工具更改节点版本,而不是在package.json中
  • 您好,我该如何更新我的应用程序,我刚刚在本地安装了 v16.8.0,所以它将如何影响我的应用程序,需要更改哪些文件
  • 如果节点在您的机器上更新,您应该能够重新启动应用程序以使用它。 除非应用程序使用其他方式来查找节点的不同副本,否则不需要其他任何东西。
  • 我做到了,纱线启动可以在本地运行,但是当我进行纱线测试时,它显示 err_unhandled_rejection
  • 这表明您的代码或测试中有错误。这与 Node 无关。某个地方有一个失败的承诺或异步函数,并且没有错误处理程序。

标签: node.js reactjs


【解决方案1】:

节点是运行时,基于节点的应用程序将使用系统/机器中正在使用的节点的当前版本。

您应该使用版本管理器 ( nvm )。它有助于高效地安装和使用不同版本的节点。

例如如果需要更改节点版本16.15.1

  • nvm use 16.15.1

对于您的问题,您应该在节点版本更改后刷新安装在node_modules 中的软件包,您应该执行以下操作,

  • 删除node_modues文件夹。
  • 仅在使用纱线时删除 package.lock.jsonyarn.lock.jsion
  • 使用npm installyarn install 重新安装软件包
  • 终于开始你的应用程序npm startyarn start

对于您的测试,单独测试组件使用react-test-renderer/shallow

例子,

import ShallowRenderer from 'react-test-renderer/shallow';
import YourComponent from '../path/YourComponent';

it('renders correctly YourComponent', () => {
  const renderer = new ShallowRenderer();
  renderer.render(< YourComponent .... />);
  const view = renderer.getRenderOutput();

  expect(view).toMatchSnapshot();
});

【讨论】:

  • 删除锁定文件不是个好主意
  • 我正在使用yarn,我已经删除了yarn.lock 文件但是得到了同样的错误
  • npm install 将通过正确重新排列依赖关系来重新创建锁定文件。
  • 执行 yarn install 它将创建 yarn.lock 文件。按照我的回答。如果它不起作用,请分享完整的错误详细信息。
  • 纱线安装成功,但是当我运行纱线测试时,它显示此错误并在此文件 index.test.tsx 中出现错误“UnhandledPromiseRejection-此错误源于在没有 catch 块的情况下抛出异步函数,或通过拒绝使用.Catch() 处理的承诺。承诺被拒绝的原因是 CSRF-no token set run init()" code-"ERR_UNHANDLED_REJECTION error-command failed with exit code 1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 2021-04-25
  • 2022-09-27
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多