#nestjs
Вопрос:
Новый разработчик узлов здесь. Установлена NVM и используется последняя версия Node LTS:
node --version: v16.13.0 npm --version: 8.1.2
Когда я следую инструкциям в документации по гнезду:
npm i -g @nestjs/cli
Я получаю следующие предупреждения:
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 || gt;=14.0.0', npm WARN EBADENGINE npm: '^6.11.0 || ^7.5.6', npm WARN EBADENGINE yarn: 'gt;= 1.13.0' npm WARN EBADENGINE }, npm WARN EBADENGINE current: { node: 'v16.13.0', npm: '8.1.2' } 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 || gt;=14.0.0', npm WARN EBADENGINE npm: '^6.11.0 || ^7.5.6', npm WARN EBADENGINE yarn: 'gt;= 1.13.0' npm WARN EBADENGINE }, npm WARN EBADENGINE current: { node: 'v16.13.0', npm: '8.1.2' } 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 || gt;=14.0.0', npm WARN EBADENGINE npm: '^6.11.0 || ^7.5.6', npm WARN EBADENGINE yarn: 'gt;= 1.13.0' npm WARN EBADENGINE }, npm WARN EBADENGINE current: { node: 'v16.13.0', npm: '8.1.2' } npm WARN EBADENGINE }
Итак, есть ли проблема с использованием NestJS с NVM?
Комментарии:
1. NPM v8.1.2 действительно несовместим с требованием
^6.11.0 || ^7.5.6
.2. Я забыл упомянуть, что впоследствии я обновил NPM, думая, что обновление решит вышеуказанные проблемы с EBADENGINE, поэтому я сделал: nvm install-latest-npm. До этого у меня был NPM 8.1.0 с теми же проблемами.
3. Как бы обновление NPM исправило это, учитывая, что оно сообщает вам, что используемая вами версия уже слишком новая? 8.1.2 не более совместим с этой спецификацией, чем 8.1.0.
4. просто не обращай на них внимания. Или переключитесь на пряжу xD
5. Я понижу рейтинг NPM и посмотрю, как все пойдет. Спасибо!
Ответ №1:
Каждая версия узла поставляется в комплекте с версией NPM, поэтому при установке/использовании определенной версии узла с помощью NVM он также устанавливает версию NPM для этой конкретной версии узла, которая изначально была в комплекте с ним.
Вот JSON дистрибутивов NodeJS, в котором указана версия каждого узла и NPM в комплекте с ним: https://nodejs.org/dist/index.json
Приведенные выше предупреждения говорят нам, в чем проблема:
required: { node: '^12.14.1 || gt;=14.0.0', npm: '^6.11.0 || ^7.5.6', },
Это означает, что я могу использовать более новую версию узла, чем v14 (пример: LTS/gallium), но версия NPM в комплекте (8.1.0) не соответствует вышеуказанным требованиям, позволяя использовать последнюю версию 7.5.6 для второстепенных и исправлений.
При использовании узла v16 в NVM я мог бы изменить его версию NPM на последнюю версию v7.x.x, запустив:
npm install -g npm@7.24.2
После этого больше не было предупреждающих лесов для проекта Гнезда (по крайней мере, на данный момент).