Установка npm с помощью fnm
npm (Node Package Manager) устанавливается вместе с Node.js. Это руководство рассказывает, как управлять npm через fnm.
Взаимосвязь между npm и fnm
Когда вы устанавливаете Node.js с помощью fnm, npm автоматически включается:
bash
# Установить Node.js (автоматически включает npm)
fnm install 20
# Проверить версию npm
npm --versionПроверка версии npm
bash
# Просмотреть текущую версию npm
npm --version
# Просмотреть версии Node.js и npm
node --version
npm --versionРазные версии Node.js соответствуют разным версиям npm:
| Node.js | npm |
|---|---|
| 20.x | 10.x |
| 18.x | 9.x |
| 16.x | 8.x |
Обновление npm
Самостоятельное обновление npm
bash
# Обновить до последней версии
npm install -g npm@latest
# Обновить до конкретной версии
npm install -g npm@10.2.0Переключение версии Node.js
Переключение версии Node.js также переключает версию npm:
bash
# Переключиться на Node.js 20
fnm use 20
npm --version # Вывод: 10.x.x
# Переключиться на Node.js 18
fnm use 18
npm --version # Вывод: 9.x.xУправление глобальными пакетами npm
Просмотр пути глобальной установки
bash
npm config get prefixРасположение глобальных пакетов
Глобальные пакеты Node.js, управляемые fnm, находятся в:
~/.fnm/node-versions/<version>/installation/lib/node_modulesУстановка глобальных пакетов
bash
# Установить глобальные пакеты
npm install -g pnpm
npm install -g yarn
npm install -g typescript
# Просмотреть глобальные пакеты
npm list -g --depth=0Использование Corepack
Corepack — это менеджер менеджеров пакетов для Node.js, который может управлять npm, yarn и pnpm:
Включение Corepack
bash
# Включить Corepack при установке Node.js
fnm install 20 --corepack-enabled
# Или установить переменную окружения
export FNM_COREPACK_ENABLED=true
fnm install 20Использование Corepack
bash
# Включить Corepack
corepack enable
# Использовать конкретную версию yarn
corepack prepare yarn@stable --activate
# Использовать конкретную версию pnpm
corepack prepare pnpm@latest --activateКонфигурация npm
Настройка зеркала
bash
# Установить зеркало npm
npm config set registry https://registry.npmmirror.com
# Просмотреть текущую конфигурацию
npm config list
# Восстановить зеркало по умолчанию
npm config set registry https://registry.npmjs.orgОбщие зеркала
| Зеркало | URL |
|---|---|
| npm Official | https://registry.npmjs.org |
| npmmirror | https://registry.npmmirror.com |
| Tencent Cloud | https://mirrors.cloud.tencent.com/npm/ |
Управление несколькими версиями npm
Поскольку npm устанавливается вместе с Node.js, лучший способ управления несколькими версиями npm:
Способ 1: Переключение версии Node.js
bash
# Установить несколько версий Node.js
fnm install 20
fnm install 18
# Переключить версии
fnm use 20 # npm 10.x
fnm use 18 # npm 9.xСпособ 2: Независимое обновление npm
bash
# Обновить npm в текущей версии Node.js
npm install -g npm@latestОбщие проблемы
Команда npm не найдена
bash
# Подтвердить, что Node.js установлен
fnm list
# Подтвердить текущую используемую версию
fnm current
# Переустановить Node.js
fnm install 20 --useУстановка глобального пакета не удалась
bash
# Очистить кэш npm
npm cache clean --force
# Проверить разрешения
ls -la ~/.fnm/node-versions/
# Переустановить
npm install -g <package>Несоответствие версии npm
bash
# Проверить версию Node.js
fnm current
# Сбросить npm до версии по умолчанию
fnm uninstall <version>
fnm install <version>Лучшие практики
1. Использование package.json engines
Укажите версии Node.js и npm в проекте:
json
{
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
}
}2. Использование файла .npmrc
Создайте файл .npmrc в проекте:
registry=https://registry.npmmirror.com
save-exact=true3. Блокировка менеджера пакетов
Используйте поле packageManager:
json
{
"packageManager": "npm@10.2.0"
}Связанные ссылки
- Установка Node.js - Установить Node.js
- Управление версиями - Руководство по управлению версиями
- Справочник команд - Все подробности о командах