Skip to content

Установка зависимостей

vp install устанавливает зависимости с использованием менеджера пакетов текущего рабочего пространства.

Обзор

Используйте Vite+ для управления зависимостями в pnpm, npm, Yarn и Bun. Вместо переключения между pnpm install, npm install, yarn install и bun install, вы можете продолжать использовать vp install, vp add, vp remove и остальные команды управления пакетами Vite+.

Vite+ определяет менеджер пакетов из корня рабочего пространства в следующем порядке:

  1. packageManager в package.json
  2. devEngines.packageManager в package.json
  3. pnpm-workspace.yaml
  4. pnpm-lock.yaml
  5. yarn.lock или .yarnrc.yml
  6. package-lock.json
  7. bun.lock или bun.lockb
  8. .pnpmfile.cjs или pnpmfile.cjs
  9. bunfig.toml
  10. yarn.config.cjs

Если ни один из этих файлов не найден, vp по умолчанию использует pnpm. Vite+ автоматически загружает соответствующий менеджер пакетов и использует его для выполняемой команды. Если определение происходит по lock-файлам или конфигурационным файлам, разрешённая версия записывается в devEngines.packageManager, чтобы последующие запуски были детерминированными; проекты, в которых уже указан packageManager или devEngines.packageManager, остаются без изменений.

Поле devEngines.packageManager может содержать один объект или массив объектов, а значение свойства version может задаваться не только конкретной версией, но и диапазоном версий согласно правилам семантического версионирования:

json
{
  "devEngines": {
    "packageManager": {
      "name": "pnpm",
      "version": "^11.0.0",
      "onFail": "download"
    }
  }
}

Если указан диапазон версий, по возможности выбирается уже загруженная версия, которая ему соответствует; в противном случае используется самая новая подходящая версия из реестра npm. Сам диапазон остаётся источником истины — Vite+ никогда не заменяет его точной фиксированной версией в поле packageManager. Если указаны и packageManager, и devEngines.packageManager, для выбора используется поле packageManager, а Vite+ выводит предупреждение, если оно не соответствует ограничениям из devEngines (подробности можно посмотреть с помощью vp env doctor).

В настоящее время Vite+ всегда загружает указанный менеджер пакетов (поведение onFail: "download"). Другие значения onFail принимаются, но пока не отличаются по поведению.

Явно указанное поле packageManager (или запись в devEngines.packageManager) также влияет на соответствующие shim-команды менеджеров пакетов. Например, если в проекте указано packageManager: "npm@10.9.4", команды npm и npx будут использовать npm 10.9.4. Аналогично работают и другие пары алиасов: pnpm/pnpx, yarn/yarnpkg и bun/bunx. Несоответствующие инструменты не подменяются автоматически: например, команда npm в проекте на pnpm всё равно будет разрешаться как npm.

Использование

bash
vp install

Типовые сценарии установки:

bash
vp install
vp install --frozen-lockfile
vp install --lockfile-only
vp install --filter web
vp install -w

vp install сопоставляется с корректным поведением установки для обнаруженного менеджера пакетов, включая правильные флаги работы с lock-файлами для pnpm, npm, Yarn и Bun.

Глобальные пакеты

Используйте флаг -g для установки, обновления или удаления глобально установленных пакетов:

  • vp install -g <pkg> — устанавливает пакет глобально
  • vp uninstall -g <pkg> — удаляет глобальный пакет
  • vp update -g [pkg] — обновляет один глобальный пакет или все сразу
  • vp list -g [pkg] — выводит список глобальных пакетов

Управление зависимостями

Vite+ предоставляет все привычные команды управления пакетами:

  • vp install — устанавливает текущий граф зависимостей проекта
  • vp add <pkg> — добавляет пакеты в dependencies, используйте -D для devDependencies
  • vp remove <pkg> — удаляет пакеты
  • vp update — обновляет зависимости
  • vp dedupe — сокращает количество дублирующихся записей зависимостей там, где это поддерживается менеджером пакетов
  • vp outdated — показывает доступные обновления
  • vp list — показывает установленные пакеты
  • vp why <pkg> — объясняет, почему пакет присутствует в проекте
  • vp info <pkg> — показывает метаданные пакета из реестра
  • vp rebuild — пересобирает нативные модули (например, после смены версии Node.js)
  • vp link и vp unlink — управляют локальными связями пакетов
  • vp dlx <pkg> — запускает бинарный файл пакета без добавления его в проект
  • vp pm <command> — передаёт исходную команду конкретному менеджеру пакетов, если требуется поведение вне унифицированного набора команд vp

Справочник команд

Установка

Используйте vp install, если хотите установить именно те зависимости, которые описаны в текущих package.json и lock-файле.

  • vp install — стандартная команда установки
  • vp install --frozen-lockfile — завершится ошибкой, если потребуется изменить lock-файл
  • vp install --no-frozen-lockfile — явно разрешает обновление lock-файла
  • vp install --lockfile-only — обновляет только lock-файл без полной установки
  • vp install --prefer-offline и vp install --offline — предпочитают или требуют использование пакетов из локального кэша
  • vp install --ignore-scripts — пропускает скрипты жизненного цикла
  • vp install --filter <pattern> — ограничивает установку указанными пакетами в монорепозитории
  • vp install -w — выполняет установку в корне рабочего пространства

Глобальная установка

Используйте эти команды, если хотите сделать инструменты, управляемые менеджером пакетов, доступными вне конкретного проекта.

  • vp install -g typescript
  • vp uninstall -g typescript
  • vp update -g
  • vp list -g

Добавление и удаление

Используйте vp add и vp remove для повседневного управления зависимостями вместо ручного редактирования package.json.

  • vp add react
  • vp add -D typescript vitest
  • vp add -O fsevents
  • vp add --save-peer react
  • vp remove react
  • vp remove --filter web react

Обновление, дедупликация и проверка устаревших пакетов

Используйте эти команды для поддержки графа зависимостей в актуальном состоянии.

  • vp update — обновляет пакеты до более новых версий
  • vp outdated — показывает пакеты, для которых доступны новые версии
  • vp dedupe — просит менеджер пакетов по возможности объединить дублирующиеся зависимости

Анализ зависимостей

Используйте эти команды, чтобы понять текущее состояние зависимостей.

  • vp list — показывает установленные пакеты
  • vp why react — объясняет, почему установлен react
  • vp info react — показывает метаданные из реестра, такие как версии и dist-tags

Пересборка

Используйте vp rebuild, когда нативные модули необходимо перекомпилировать, например после смены версии Node.js или если дополнение на C/C++ не удаётся загрузить.

  • vp rebuild — пересобирает все нативные модули
  • vp rebuild <package...> — пересобирает только указанные пакеты
  • vp rebuild -- <args> — передаёт дополнительные аргументы базовому менеджеру пакетов
bash
vp rebuild
vp rebuild better-sqlite3 sharp
vp rebuild -- --update-binary

vp rebuild является сокращением для vp pm rebuild.

Начиная с pnpm v10, команда vp rebuild без указания пакета пересобирает только те пакеты, чьи скрипты сборки перечислены в onlyBuiltDependencies (или были одобрены через pnpm approve-builds). Чтобы принудительно пересобрать пакет в обход механизма подтверждения, укажите его имя явно.

Дополнительно

Используйте эти команды, когда требуется более низкоуровневое поведение менеджера пакетов.

  • vp link и vp unlink — управляют локальными ссылками для разработки
  • vp dlx create-vite — запускает бинарный файл пакета без сохранения его в зависимостях
  • vp pm <command> — напрямую передаёт команду выбранному менеджеру пакетов

Примеры:

bash
vp pm config get registry
vp pm cache clean --force
vp pm exec tsc --version

Поэтапная публикация

vp pm stage предоставляет доступ к рабочему процессу поэтапной публикации из npm: сборка загружается в промежуточную область (без 2FA, удобно для CI), после чего сопровождающий проекта может утвердить или отклонить её с доверенного устройства (с использованием 2FA). Команда автоматически адаптируется под обнаруженный менеджер пакетов.

bash
vp pm stage publish              # загрузить пакет в staging (без 2FA)
vp pm stage list                 # показать список staged-версий
vp pm stage view <stage-id>      # просмотреть staged-версию
vp pm stage download <stage-id>  # скачать staged-архив
vp pm stage approve <stage-id>   # опубликовать в основном реестре (2FA)
vp pm stage reject <stage-id>    # отклонить staged-версию (2FA)
  • Для pnpm (pnpm stage, требуется pnpm ≥ 11.3) и npm (npm stage, требуется npm ≥ 11.15 и Node ≥ 22.14) команды передаются напрямую.
  • Yarn (Berry) использует свой npm-плагин (yarn npm publish --staged, yarn npm stage …); команды view и download выполняются через npm.
  • Yarn Classic и Bun не поддерживают поэтапную публикацию и используют npm stage в качестве резервного варианта.