我正在学习NestJS网站上的课程。我需要安装类验证器和类转换器npm i class-validator class-transformer
但是当我这样做时,我得到错误:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@angular-devkit/core@12.2.10',
npm WARN EBADENGINE required: {
npm WARN EBADENGINE node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE yarn: '>= 1.13.0'
npm WARN EBADENGINE },
npm WARN EBADENGINE current: { node: 'v16.11.0', npm: '8.0.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@angular-devkit/schematics@12.2.10',
npm WARN EBADENGINE required: {
npm WARN EBADENGINE node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE yarn: '>= 1.13.0'
npm WARN EBADENGINE },
npm WARN EBADENGINE current: { node: 'v16.11.0', npm: '8.0.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@angular-devkit/schematics-cli@12.2.10',
npm WARN EBADENGINE required: {
npm WARN EBADENGINE node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE yarn: '>= 1.13.0'
npm WARN EBADENGINE },
npm WARN EBADENGINE current: { node: 'v16.11.0', npm: '8.0.0' }
npm WARN EBADENGINE }
我不知道如何解决这个问题。
NestJS和Angular似乎意识到了这个问题,因为两个团队在GitHub Memory上进行了简短的讨论。最新版本的Angular不支持npm 8或更高版本?
但是看起来Angular团队在2021年10月20日(4天前)发布了一个修复这个问题的版本
我使用的是Ubuntu 20.04
Node 16.11
npm 8
我需要做什么来解决这个问题?
更新18.11.2021:
NestJS已经更新了依赖项(特别是@nestjs/cli@8.1.5
),所以现在你可以更新你的项目依赖关系(只需运行npm update
),并切换回使用npm@8(只需运行npm install -g npm@8
)。
原始答:
是的,你今天应该做的是把npm降级到版本7。要做到这一点,只需运行npm install -g npm@7
。
npm i -g npm@8
切换回npm v8。