Skip to content

Решение проблем

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

ИНФОРМАЦИЯ

Vite+ находится в стадии бета-версии: он стабилен, но ещё не завершён. Мы добавляем новые возможности на пути к версии 1.0 и уделяем приоритетное внимание обратной связи от сообщества, поэтому, пожалуйста, сообщите нам, если что-то работает не так, как ожидается.

Поддерживаемые версии инструментов

Vite+ рассчитан на использование современных версий базовых инструментов.

  • Vite 8 или новее
  • Vitest 4.1 или новее

Если вы переносите существующий проект и он всё ещё зависит от более старых версий Vite или Vitest, сначала обновите их, а затем переходите на Vite+.

vp check не запускает линтинг с учётом типов или проверку типов

  • Убедитесь, что в vite.config.ts включены lint.options.typeAware и lint.options.typeCheck
  • Проверьте, использует ли ваш tsconfig.json параметр compilerOptions.baseUrl

Путь проверки типов Oxlint на базе tsgolint не поддерживает baseUrl. Команды vp migrate и vp lint --init пытаются выполнить исправление vp dlx @andrewbranch/ts5to6 --fixBaseUrl . перед включением линтинга с учётом типов. Если это исправление завершается ошибкой или пользователь отказывается от его применения, Vite+ пропускает включение typeAware и typeCheck.

Расширение VS Code не читает vite.config.ts

Если в VS Code открыто несколько папок, общий языковой сервер Oxc может выбрать другое рабочее пространство. Из-за этого может показаться, что поддержка vite.config.ts отсутствует.

  • Убедитесь, что расширение использует нужное рабочее пространство.

vp dev или vp build не запускает мой сценарий

В отличие от менеджеров пакетов, встроенные команды нельзя переопределить. Если вы хотите запустить сценарий из package.json, используйте вместо этого vp run <script>.

Например:

  • vp dev всегда запускает встроенный сервер разработки Vite
  • vp build всегда запускает встроенную сборку Vite
  • vp test всегда запускает встроенную команду Vitest
  • vp run dev, vp run build и vp run test вместо этого запускают соответствующие сценарии из package.json

См. раздел Встроенные команды и сценарии, чтобы узнать, когда следует использовать каждый из этих вариантов.

ИНФОРМАЦИЯ

Вы также можете запускать пользовательские задачи, определённые в vite.config.ts, и полностью отказаться от сценариев в package.json.

Проверки индексированных файлов и хуки коммитов

Если vp staged завершается ошибкой или ваш pre-commit хук не запускается:

  • убедитесь, что vite.config.ts содержит блок staged
  • выполните vp config для установки хуков
  • проверьте, не была ли установка хуков намеренно отключена через VITE_GIT_HOOKS=0

Минимальная конфигурация staged выглядит так:

vite.config.ts
ts
import { defineConfig } from 'vite-plus';

export default defineConfig({
  staged: {
    '*': 'vp check --fix',
  },
});

Медленная загрузка конфигурации из-за тяжёлых плагинов

Когда vite.config.ts импортирует плагины на верхнем уровне, они оцениваются при каждой команде, включая vp lint, vp fmt, интеграции с редакторами и долгоживущие фоновые процессы. Это может замедлить загрузку конфигурации и вызвать побочные эффекты при настройке плагинов, такие как чтение файлов, запуск наблюдателей или подключение к сервисам.

Используйте lazyPlugins, чтобы пропускать создание экземпляров плагинов, когда vite-plus загружает вашу конфигурацию только для чтения блока метаданных (lint, fmt, check, staged, pack, create, поиск задач run/cache и инструменты редактора). При этом плагины по-прежнему будут загружаться во всех случаях, когда Vite действительно запускается: dev, build, test, preview, а также при любых сборках, запускаемых вашими собственными сценариями (например, задачей vp run или командой vp exec).

vite.config.ts
ts
import { defineConfig, lazyPlugins } from 'vite-plus';
import myPlugin from 'vite-plugin-foo';

export default defineConfig({
  plugins: lazyPlugins(() => [myPlugin()]),
});

Для тяжёлых плагинов, которые следует загружать лениво, используйте динамический import():

vite.config.ts
ts
import { defineConfig, lazyPlugins } from 'vite-plus';

export default defineConfig({
  plugins: lazyPlugins(async () => {
    const { default: heavyPlugin } = await import('vite-plugin-heavy');
    return [heavyPlugin()];
  }),
});

Как получить помощь

Если вы столкнулись с проблемой, обратитесь за помощью:

  • Discord — для обсуждений в реальном времени и помощи в устранении неполадок
  • GitHub — для сообщений об ошибках, обсуждений и создания ишью

При сообщении о проблеме обязательно укажите:

  • Полный вывод команд vp env current и vp --version
  • Менеджер пакетов, используемый в проекте
  • Точные шаги для воспроизведения проблемы и ваш файл vite.config.ts
  • Минимальный репозиторий для воспроизведения или запускаемую песочницу