有没有推荐的方法来更新 NestJS?

Rob*_*uyl 30 nestjs

我目前使用的是 6.0.4,我想使用 6.5.2。做这个的最好方式是什么?CLI 中有什么东西吗?我是否手动更新每个 @nestjs 包?

当前的依赖项是:

    "@nestjs/common": "^6.0.4",
    "@nestjs/core": "^6.0.4",
    "@nestjs/microservices": "^6.0.4",
    "@nestjs/passport": "^6.1.0",
    "@nestjs/platform-express": "^6.0.4",
    "@nestjs/swagger": "^3.0.2",
Run Code Online (Sandbox Code Playgroud)

Mat*_*ler 42

您可以使用 Nest CLI 更新依赖项:

$ npm install -g @nestjs/cli
$ nest update
Run Code Online (Sandbox Code Playgroud)

你也可以 $ nest u

正如米克在他的评论中提到的,您可能需要添加--force 参数。

nest update --force
Run Code Online (Sandbox Code Playgroud)

  • 这对我没有任何作用(我有 6.x,想要 7.x),但“nest update --force”确实进行了**升级**。 (18认同)
  • 如果您在这里,要升级nestjs9,请使用“ncu”,因为“nest update”在nestjs9中已弃用。 (8认同)
  • 不起作用。只是坐在那里说安装正在进行中。 (3认同)

Chu*_*ran 23

使用以下命令强制更新:

nest update -f -t latest

nest info 



_   _             _      ___  _____  _____  _     _____
| \ | |           | |    |_  |/  ___|/  __ \| |   |_   _|
|  \| |  ___  ___ | |_     | |\ `--. | /  \/| |     | |
| . ` | / _ \/ __|| __|    | | `--. \| |    | |     | |
| |\  ||  __/\__ \| |_ /\__/ //\__/ /| \__/\| |_____| |_
\_| \_/ \___||___/ \__|\____/ \____/  \____/\_____/\___/


[System Information]
OS Version     : macOS Catalina
NodeJS Version : v12.16.1
NPM Version    : 6.13.4
[Nest Information]
platform-express version : 7.4.2
microservices version    : 7.4.2
common version           : 7.4.2
core version             : 7.4.2
Run Code Online (Sandbox Code Playgroud)

你可以看看这个帖子

Nest 文档:Nest 更新

  • 只是报告我用它来将 Nest 8 升级到 9 并且工作正常。 (2认同)

Ian*_*amz 17

我遵循了这个答案

npm install -g @nestjs/cli
npx npm-check-updates "/nestjs*/" -u 
Run Code Online (Sandbox Code Playgroud)

  • 这个建议可以解决我的机器上的同样问题。 (2认同)

Yog*_*ity 9

nest update命令已被弃用。NestJS 创建者现在建议使用该npm-check-updates包。

使用 NPM

安装npm-check-updates包:

npm i npm-check-updates
Run Code Online (Sandbox Code Playgroud)

现在更新NestJS相关包:

npx ncu -u -f "/nestjs*/"
Run Code Online (Sandbox Code Playgroud)

nestjs此命令将仅更新名称中包含的依赖项package.json

然后运行:

npm install
Run Code Online (Sandbox Code Playgroud)

运行应用程序后,如果出现错误:Cannot find module...

使用以下命令手动一一安装软件包:

npm i @nestjs/config

npm i @nestjs/jwt

npm i @nestjs/platform-express

npm i @nestjs/core

npm i @nestjs/common

npm i @nestjs/typeorm --force
Run Code Online (Sandbox Code Playgroud)

使用纱线

安装npm-check-updates包:

yarn add npm-check-updates
Run Code Online (Sandbox Code Playgroud)

更新 NestJS 包:

yarn npm-check-updates -u -f "/nestjs*/"
Run Code Online (Sandbox Code Playgroud)

然后,要安装依赖项,只需运行:

yarn
Run Code Online (Sandbox Code Playgroud)


ner*_*ast 6

我处理这个问题的方法是手动更新每个包。这有点乏味,但它使您可以完全控制每个包设置的版本。

我通常会在 git 中创建一个“功能”分支,比如feature/upgrade我将更新包的地方

npm i @nestjs/common@latest @nestjs/core@latest ...
Run Code Online (Sandbox Code Playgroud)

在那里尝试一下,然后将该分支合并到 master (或任何您的开发分支)。Git消除了从另一个目录“复制”代码的需要,如果新的包版本破坏了某些东西,你有时间在推出生产之前在功能分支中修复它们。