Skip to content

Установка 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.jsnpm
20.x10.x
18.x9.x
16.x8.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 Officialhttps://registry.npmjs.org
npmmirrorhttps://registry.npmmirror.com
Tencent Cloudhttps://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=true

3. Блокировка менеджера пакетов

Используйте поле packageManager:

json
{
  "packageManager": "npm@10.2.0"
}

Связанные ссылки