Вопрос или проблема
npm не поддерживает Node.js v10.19.0. Вам, вероятно, следует обновиться до более новой версии node, так как мы не можем гарантировать, что npm будет работать с этой версией. Вы можете найти последнюю версию по адресу https://nodejs.org/
Краткий ответ
Самый простой способ – обновиться до Node.js v18:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
Если у вас возникли проблемы с установкой, попробуйте sudo apt-get purge nodejs
, см. подробности.
Подробный ответ
Вы можете обновиться до более новых версий Node.js, смотрите: https://github.com/nodesource/distributions#readme, однако согласно комментарию на github, переход на самую новую версию может привести к разрушительным изменениям. (Я никаких не заметил.)
Спасибо за комментарий от @SaidbakR ниже: чтобы увидеть, какая версия совместима, проверьте следующую таблицу:
| NodeJS | `npm --version` |
|---------|-----------------|
| Node 20 | 9.0+ |
| Node 18 | 8.0+ |
| Node 16 | 6.0+ |
| Node 14 | 4.14+, <9.0 |
| Node 12 | 4.12+, <8.0 |
| Node 10 | 4.9+ , <6.0 |
Я пропустил нечетные числа, так как у них нет долгосрочной поддержки.
Если вы хотите обновиться, например, до Node.js 20, отредактируйте номер в приведенном выше коде:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
if [ -f "/etc/debian_version" ]; then
sudo apt-get install -y nodejs
fi
Этот ответ основан на (Как обновить node.js), а также на (совместимых версиях node.js и npm)
Если у вас есть nvm
, вы можете попробовать переустановить версии node. Убедитесь, что вы сначала переключились на версию node, для которой ваш npm работает. Например, переключитесь на node 8, а затем переустановите другие версии.
nvm use 8
nvm uninstall 10
nvm uninstall 12
nvm install 10
nvm install 12
nvm use 10
nvm alias default 10
nvm uninstall 8
Источник: maxbettercloud на https://github.com/nodejs/help/issues/3644#issuecomment-999170850
Обновление 2023:
node.js изменил установку: https://github.com/nodesource/distributions#installation-instructions
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=18
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
PS: Вы можете изменить версию, выбрав одну из следующих: NODE_MAJOR=16
;NODE_MAJOR=18
;NODE_MAJOR=20
.
Ответ или решение
Проблема совместимости: npm и Node.js v10.19.0
Проблема с использованием npm
вместе с Node.js версии v10.19.0 заключается в том, что эта версия устарела и больше не поддерживается. Разработчики npm
предупреждают пользователей, что дальнейшее использование старой версии Node.js может привести к непредсказуемым результатам, поскольку новые функции и исправления ошибок в npm
не будут работать корректно на устаревших версиях Node.js.
Чтобы обеспечить простоту интеграции и получать доступ ко всем последним обновлениям, рекомендуется обновить Node.js до более новой, поддерживаемой версии. На данный момент рекомендуемая версия — это Node.js v18.
Как обновить Node.js до версии v18
Для выполнения обновления на операционных системах на базе Debian (например, Ubuntu), вы можете воспользоваться следующими командами:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
Если в процессе установки у вас возникают неполадки, вы можете очистить старую версию Node.js с помощью следующей команды:
sudo apt-get purge nodejs
Необходимая информация о совместимости версий
Для дальнейшего понимания совместимости между версиями npm
и Node.js
, важно ознакомиться с таблицей, содержащей следующие связи:
| NodeJS | `npm --version` |
|---------|-----------------|
| Node 20 | 9.0+ |
| Node 18 | 8.0+ |
| Node 16 | 6.0+ |
| Node 14 | 4.14+, <9.0 |
| Node 12 | 4.12+, <8.0 |
| Node 10 | 4.9+, <6.0 |
Обратите внимание, что версии Node.js, которые не являются четными числами, такие как v11, v13 и т.д., не имеют долгосрочной поддержки и рекомендуется использовать только четные версии (например, v16, v18 и т.д.).
Установка более новой версии (например, Node.js v20)
Если вы хотите установить более новую версию, например v20, вы можете изменить номер версии в команде:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Использование nvm для управления версиями Node.js
Если у вас установлена утилита nvm
(Node Version Manager), вы можете легко управлять разными версиями Node.js. Используя nvm
, выполните следующие команды для установки и переключения между версиями:
nvm use 8
nvm uninstall 10
nvm uninstall 12
nvm install 10
nvm install 12
nvm use 10
nvm alias default 10
nvm uninstall 8
Заключение
Устойчивость вашего приложения зависит от наличия актуальных компонентов. Регулярное обновление Node.js и npm обеспечит доступ к новым функциональным возможностям и исправлениям, что в свою очередь повысит безопасность и стабильность вашего кода. Мы настоятельно рекомендуем следовать последним рекомендациям и обновлениям на официальных страницах Node.js и npm.