Skip to content

Переход на API для каждой среды

Обратная связь

Оставьте нам отзыв в обсуждении обратной связи по Environment API

Несколько API из ViteDevServer, связанных с графом модулей и преобразованиями модулей, были перемещены в экземпляры DevEnvironment.

Область применения: Авторы плагинов Vite

Депрекация в будущем

Экземпляр Environment был впервые введен в v6.0. Депрекация server.moduleGraph и других методов, которые теперь находятся в окружениях, запланировано на v7.0. Мы не рекомендуем пока отказываться от методов сервера. Чтобы определить ваше использование, установите их в вашей конфигурации vite.

ts
future: {
  removeServerModuleGraph: 'warn',
  removeServerTransformRequest: 'warn',
}

:::

Мотивация

В Vite v5 и ранее один dev-сервер Vite всегда имел два окружения (client и ssr). server.moduleGraph содержал смешанные модули из обоих этих окружений. Узлы были связаны через списки clientImportedModules и ssrImportedModules (но для каждого из них поддерживался единый список importers). Преобразованный модуль представлялся с помощью id и булевой переменной ssr. Эта булевая переменная должна была передаваться в API, например, server.moduleGraph.getModuleByUrl(url, ssr) и server.transformRequest(url, { ssr }).

В Vite v6 теперь возможно создавать любое количество пользовательских окружений (client, ssr, edge и т. д.). Одной булевой переменной ssr больше не достаточно. Вместо изменения API на форму server.transformRequest(url, { environment }), мы переместили эти методы в экземпляр окружения, что позволяет вызывать их без dev-сервера Vite.

Руководство по переходу

  • server.moduleGraph -> environment.moduleGraph
  • server.transformRequest(url, ssr) -> environment.transformRequest(url)
  • server.warmupRequest(url, ssr) -> environment.warmupRequest(url)

Выпущено под лицензией MIT. (dev)