Русский
Конфигурирование Vite
При запуске vite
из командной строки Vite автоматически попытается разрешить файл конфигурации с именем vite.config.js
внутри проекта root.
Самый простой файл конфигурации выглядит так:
js
// vite.config.js
export default {
// config options
}
Примечание. Vite поддерживает использование синтаксиса модулей ES в файле конфигурации, даже если проект не использует собственный Node ESM, например, type: "module"
в package.json
. В этом случае файл конфигурации автоматически предварительно обрабатывается перед загрузкой.
Вы также можете явно указать файл конфигурации для использования с параметром CLI --config
(разрешено относительно cwd
):
bash
vite --config my-config.js
Конфигурация IntelliSense
Поскольку Vite поставляется с типами TypeScript, вы можете использовать intellisense вашей IDE с помощью подсказок типа jsdoc:
js
/** @type {import('vite').UserConfig} */
export default {
// ...
}
В качестве альтернативы вы можете использовать хелпер defineConfig
, который должен предоставлять IntelliSense без необходимости аннотаций jsdoc:
js
import { defineConfig } from 'vite'
export default defineConfig({
// ...
})
Vite также напрямую поддерживает файлы конфигурации TS. Вы также можете использовать vite.config.ts
с хелпером defineConfig
.
Условная конфигурация
Если в конфигурации необходимо условно определить параметры на основе команды (dev
/serve
или build
), используемого режима или если это сборка SSR (ssrBuild
), вместо этого он может экспортировать функцию:
js
export default defineConfig(({ command, mode, ssrBuild }) => {
if (command === 'serve') {
return {
// dev specific config
}
} else {
// command === 'build'
return {
// build specific config
}
}
})
Важно отметить, что в Vite API значением command
является serve
во время разработки (в cli vite
, vite dev
, и vite serve
являются псевдонимами), и build
при сборке для производства (vite build
).
ssrBuild
является экспериментальным. Он доступен только во время сборки вместо более общего флага ssr
, потому что во время разработки конфигурация используется одним сервером, обрабатывающим запросы SSR и не-SSR. Значение может быть undefined
для инструментов, у которых нет отдельных команд для браузера и сборки SSR, поэтому используйте явное сравнение с true
и false
.
Асинхронная конфигурация
Если конфигу необходимо вызвать асинхронную функцию, он может вместо этого экспортировать асинхронную функцию:
js
export default defineConfig(async ({ command, mode }) => {
const data = await asyncFunction()
return {
// vite config
}
})
Переменные среды
Переменные окружения можно получить, как обычно, из p
.
Обратите внимание, что Vite не загружает файлы .env
по умолчанию, поскольку файлы для загрузки можно определить только после оценки конфигурации Vite, например, параметры root
и envDir
влияют на поведение загрузки. Однако вы можете использовать экспортированный помощник loadEnv
для загрузки определенного файла .env
, если это необходимо.
js
import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ command, mode }) => {
// Load env file based on `mode` in the current working directory.
// Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
const env = loadEnv(mode, process.cwd(), '')
return {
// vite config
define: {
__APP_ENV__: env.APP_ENV
}
}
})