【问题标题】:Updating node version of a project from v6x to v12x将项目的节点版本从 v6x 更新到 v12x
【发布时间】:2021-07-12 16:43:56
【问题描述】:

我有一个 node js 项目在 node v6.12.0 中运行,我需要将项目更新到 node v12.18。

这些是 package.json 中标记到项目的一些依赖项:

{
  "hapi": "^8.8.0"
  "joi": "^6.4.1"
  "mocha": "^2.4.5"
  "ioredis": "^2.4.0"
}

想知道我应该执行哪些步骤才能使升级成为可能!

如果我升级到节点 v12,代码功能会中断吗?它是否向后兼容节点 v6?所有这些Promise.then(function()) 仍然可以在节点 v12 中工作吗?

【问题讨论】:

  • 我会安装 node v12,运行应用程序,看看你得到了什么错误(如果有的话)。
  • 我通常使用我想要的节点映像创建一个 docker 容器并在其中运行我的应用程序来解决我的问题。为简单起见,您可以使用 nvm 来管理不同版本的 node,并根据需要在它们之间简单地切换。

标签: node.js promise hapi


【解决方案1】:

当前 latest+stable 版本的 node 是 14.x。所以我建议你使用 node v14。但最终,您可以选择使用哪个版本。 您可以使用nvm 管理多个节点版本,可以从这里下载 - https://github.com/nvm-sh/nvm

nvm 要记住的两个简单命令是

  1. nvm ls - 打印您机器上安装的节点版本和您正在使用的当前节点版本。
  2. nvm use 14.x - 在您想要的节点版本之间切换。运行此命令后,我将使用 node v14.x

这就是您使用新节点版本的方式。

现在,为了更新 npm package.json 依赖项,请使用这个名为 ncu https://www.npmjs.com/package/npm-check-updates 的很棒的包。

一旦您在项目文件夹中运行ncu 命令,ncu 将分析您的 package.json 中的所有依赖项并为您的 package.json 提出可能的升级建议

还有另一个惊人的命令 - ncu --doctor -u - 这将迭代地安装升级并运行您的单元测试以识别任何破坏性升级。并且如果在升级某个依赖后发现任何破坏性更改,它将恢复到以前的版本以防止破坏。

【讨论】:

  • ncu --enginesNode 命令也很有帮助,因为依赖项使用 package.json 中的 engines.node 字段。作为参考,标志的描述:“仅包括满足包文件中指定的engines.node的包。”
猜你喜欢
  • 2018-03-25
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
相关资源
最近更新 更多