Установка зависимостей
vp install устанавливает зависимости с использованием менеджера пакетов текущего рабочего пространства.
Обзор
Используйте Vite+ для управления зависимостями в pnpm, npm, Yarn и Bun. Вместо переключения между pnpm install, npm install, yarn install и bun install, вы можете продолжать использовать vp install, vp add, vp remove и остальные команды управления пакетами Vite+.
Vite+ определяет менеджер пакетов из корня рабочего пространства в следующем порядке:
packageManagerвpackage.jsondevEngines.packageManagerвpackage.jsonpnpm-workspace.yamlpnpm-lock.yamlyarn.lockили.yarnrc.ymlpackage-lock.jsonbun.lockилиbun.lockb.pnpmfile.cjsилиpnpmfile.cjsbunfig.tomlyarn.config.cjs
Если ни один из этих файлов не найден, vp по умолчанию использует pnpm. Vite+ автоматически загружает соответствующий менеджер пакетов и использует его для выполняемой команды. Если определение происходит по lock-файлам или конфигурационным файлам, разрешённая версия записывается в devEngines.packageManager, чтобы последующие запуски были детерминированными; проекты, в которых уже указан packageManager или devEngines.packageManager, остаются без изменений.
Поле devEngines.packageManager может содержать один объект или массив объектов, а значение свойства version может задаваться не только конкретной версией, но и диапазоном версий согласно правилам семантического версионирования:
{
"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.
Использование
vp installТиповые сценарии установки:
vp install
vp install --frozen-lockfile
vp install --lockfile-only
vp install --filter web
vp install -wvp 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дляdevDependenciesvp 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 typescriptvp uninstall -g typescriptvp update -gvp list -g
Добавление и удаление
Используйте vp add и vp remove для повседневного управления зависимостями вместо ручного редактирования package.json.
vp add reactvp add -D typescript vitestvp add -O fseventsvp add --save-peer reactvp remove reactvp remove --filter web react
Обновление, дедупликация и проверка устаревших пакетов
Используйте эти команды для поддержки графа зависимостей в актуальном состоянии.
vp update— обновляет пакеты до более новых версийvp outdated— показывает пакеты, для которых доступны новые версииvp dedupe— просит менеджер пакетов по возможности объединить дублирующиеся зависимости
Анализ зависимостей
Используйте эти команды, чтобы понять текущее состояние зависимостей.
vp list— показывает установленные пакетыvp why react— объясняет, почему установленreactvp info react— показывает метаданные из реестра, такие как версии иdist-tags
Пересборка
Используйте vp rebuild, когда нативные модули необходимо перекомпилировать, например после смены версии Node.js или если дополнение на C/C++ не удаётся загрузить.
vp rebuild— пересобирает все нативные модулиvp rebuild <package...>— пересобирает только указанные пакетыvp rebuild -- <args>— передаёт дополнительные аргументы базовому менеджеру пакетов
vp rebuild
vp rebuild better-sqlite3 sharp
vp rebuild -- --update-binaryvp rebuild является сокращением для vp pm rebuild.
Начиная с pnpm v10, команда vp rebuild без указания пакета пересобирает только те пакеты, чьи скрипты сборки перечислены в onlyBuiltDependencies (или были одобрены через pnpm approve-builds). Чтобы принудительно пересобрать пакет в обход механизма подтверждения, укажите его имя явно.
Дополнительно
Используйте эти команды, когда требуется более низкоуровневое поведение менеджера пакетов.
vp linkиvp unlink— управляют локальными ссылками для разработкиvp dlx create-vite— запускает бинарный файл пакета без сохранения его в зависимостяхvp pm <command>— напрямую передаёт команду выбранному менеджеру пакетов
Примеры:
vp pm config get registry
vp pm cache clean --force
vp pm exec tsc --versionПоэтапная публикация
vp pm stage предоставляет доступ к рабочему процессу поэтапной публикации из npm: сборка загружается в промежуточную область (без 2FA, удобно для CI), после чего сопровождающий проекта может утвердить или отклонить её с доверенного устройства (с использованием 2FA). Команда автоматически адаптируется под обнаруженный менеджер пакетов.
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в качестве резервного варианта.