Общие Варианты
Если не указано, параметры в этом разделе применяются ко всем разработчикам, сборке и предварительному просмотру.
корень
- Тип:
string
- По умолчанию:
process.cwd()
Проектный корневой каталог (где index.html
расположено). Может быть абсолютным путем или пути относительно текущего рабочего каталога.
Смотрите Project Root для получения более подробной информации.
база
- Тип:
string
- По умолчанию:
/
- Связанный:
server.origin
Базовый общественный путь, когда обслуживается в разработке или производстве. Допустимые значения включают:
- Абсолютный пункт URL -адреса, например,
/foo/
- Полный URL, например,
https://bar.com/foo/
(начальная часть не будет использоваться в разработке, поэтому значение совпадает с/foo/
) - Пустая строка или
./
(для встроенного развертывания)
Смотрите общественный базовый путь для более подробной информации.
режим
- Тип:
string
- По умолчанию:
'development'
для подачи,'production'
для сборки
Указание в конфигурации переопределяет режим по умолчанию как для обслуживания, так и для сборки . Это значение также может быть переопределено с помощью параметра командной строки --mode
.
См. Переменные и режимы ENV для получения более подробной информации.
определять
- Тип:
Record<string, any>
Определите глобальные постоянные замены. Записи будут определены как глобальные ущеры во время разработки и статически заменены во время сборки.
Vite использует Esbuild определяет для выполнения замены, поэтому выражения значений должны быть строкой, которая содержит значения, сериализуемое JSON (нулевое, логическое, число, строка, массив или объект) или один идентификатор. Для не строгих значений VITE автоматически преобразует его в строку с JSON.stringify
.
Пример:
export default defineConfig({
define: {
__APP_VERSION__: JSON.stringify('v1.0.0'),
__API_URL__: 'window.__backend_api_url',
},
})
NOTE
Для пользователей TypeScript, обязательно добавьте объявления типа в файл env.d.ts
или vite-env.d.ts
, чтобы получить чеки типа и Intellisense.
Пример:
// Vite-env.d.ts
declare const __APP_VERSION__: string
плагины
- Тип:
(плагин | Плагин [] | Обещание <Плагин | Плагин []>) []
Массив плагинов для использования. Фалисовые плагины игнорируются, а массивы плагинов сплющены. Если обещание будет возвращено, оно будет решено до работы. См. Plugin API для получения более подробной информации о плагинах VITE.
publicdir
- Тип: `string | ложно
- По умолчанию:
"public"
Каталог, чтобы служить простыми статическими активами. Файлы в этом каталоге обслуживаются в /
во время разработки и копируются в корень outDir
во время сборки, и всегда обслуживаются или копируются как есть без преобразования. Значение может быть либо абсолютным путем файловой системы, либо пути относительно корня проекта.
Определение publicDir
как false
отключает эту функцию.
Смотрите каталог public
для более подробной информации.
Cachedir
- Тип:
string
- По умолчанию:
"node_modules/.vite"
Каталог для сохранения файлов кеша. Файлы в этом каталоге предварительно связаны DEPS или некоторые другие файлы кэша, сгенерированные VITE, которые могут улучшить производительность. Вы можете использовать --force
флаг или вручную удалить каталог для восстановления файлов кэша. Значение может быть либо абсолютным путем файловой системы, либо пути относительно корня проекта. По умолчанию до .vite
когда не обнаруживается пакета.
resolve.alias
- Тип:
Запись <строка, строка> | Массив <{Найти: строка | Regexp, замена: строка, CustomReSolver?: ResolverFunction | ResolverObject}>
Будет передано @rollup/plugin-alias
в качестве варианта записи . Может быть либо объектом, либо массивом из { find, replacement, customResolver }
пар.
При псевдониме для файловых путей системы всегда используйте абсолютные пути. Относительные значения псевдонима будут использоваться как есть и не будут разрешены в пути файловой системы.
Более расширенное пользовательское разрешение может быть достигнуто с помощью плагинов .
Using with SSR
Если вы настроили псевдонимы для внешних зависимостей SSR , вы можете по псевдониме фактических node_modules
пакетов. Как пряжа , так и PNPM поддерживают псевдоним через npm:
префикс.
resolve.dedupe
- Тип:
string[]
Если у вас дублированные копии одной и той же зависимости в вашем приложении (вероятно, из -за подъема или связанных пакетов в MonorePos), используйте эту опцию, чтобы заставить VITE всегда разрешать перечисленные зависимости от одной и той же копии (от Project Root).
SSR + ESM
Для сборки SSR дедупликация не работает для выходов ESM Build, настроенных из build.rollupOptions.output
. Обходной путь заключается в том, чтобы использовать выходы CJS Build, пока ESM не получит лучшую поддержку плагина для загрузки модулей.
resolve.conditions
- Тип:
string[]
- По умолчанию:
['Модуль',« Браузер »,« Разработка|Производство ']
(defaultClientConditions
)
Дополнительные разрешенные условия при разрешении условного экспорта из упаковки.
Пакет с условным экспортом может иметь следующее exports
поле в его package.json
:
{
"exports": {
".": {
"import": "./index.mjs",
"require": "./index.js"
}
}
}
Здесь import
и require
- «условия». Условия могут быть вложены и должны быть указаны из наиболее специфического до наименьшего специфического.
Развитие|Производство
is a special value that is replaced withПроизводство
orРазработка
depending on the value ofProcess.env.Node_env
. It is replaced with Производство
whenProcess.env.Node_env === 'Производство'
and` Разработка 'В противном случае.
Обратите внимание, что import
, require
, default
условия всегда применяются, если требования выполняются.
Resolving subpath exports
Экспортные клавиши, оканчивающиеся на «/», устанавливаются узлом и могут не работать хорошо. Пожалуйста, свяжитесь с автором пакета, чтобы использовать *
шаблонов подлины .
resolve.mainFields
- Тип:
string[]
- По умолчанию:
['browser', 'module', 'jsnext:main', 'jsnext']
(defaultClientMainFields
)
Список полей в package.json
, чтобы попробовать при разрешении точки входа пакета. Обратите внимание, что это требует более низкого приоритета, чем условный экспорт, разрешенный из поля exports
: если точка входа успешно разрешена из exports
, основное поле будет проигнорировано.
resolve.extensions
- Тип:
string[]
- По умолчанию:
['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']
Список расширений файлов, чтобы попытаться импортировать, которые пропускают расширения. Примечание не рекомендуется опускать расширения для пользовательских типов импорта (например, .vue
), поскольку он может мешать IDE и поддержке типа.
resolve.preserveSymlinks
- Тип:
boolean
- По умолчанию:
false
Включение этого настройки заставляет VITE определять идентификацию файла по исходному пути файла (то есть путь без соблюдения символов) вместо реального пути файла (т.е. путь после следующих символов).
- Связанный: Esbuild#Proverve-Symlinks , [webpack#Resivel.symlinks ] ( https://webpack.js.org/configuration/resolve/#resolvesymlinks )
html.cspNonce
- Тип:
string
- Связанный: Политика безопасности контента (CSP)
Заполнитель, не являющийся значением, который будет использоваться при генерации тегов сценария / стиля. Установка этого значения также будет генерировать метатеги со значением NOCE.
css.modules
- Тип:ts
interface CSSModulesOptions { getJSON?: ( cssFileName: string, json: Record<string, string>, outputFileName: string, ) => void scopeBehaviour?: 'global' | 'local' globalModulePaths?: RegExp[] exportGlobals?: boolean generateScopedName?: | string | ((name: string, filename: string, css: string) => string) hashPrefix?: string /** * по умолчанию: не определен */ localsConvention?: | 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly' | (( originalClassName: string, generatedClassName: string, inputFile: string, ) => string) }
Настройте поведение модулей CSS. Варианты передаются в модулы PostCSS .
Эта опция не имеет никакого влияния при использовании CSS Lightning . Если включено, вместо этого следует использовать css.lightningcss.cssModules
.
css.postcss
- Тип:
string | (postcss.processoptions & {плагины?: postcss.acceptedplugin []})
Inline postcss config или пользовательский каталог для поиска postcss config из (по умолчанию root Project).
Для конфигурации PostCSS он ожидает того же формата, что и postcss.config.js
. Но для plugins
свойства можно использовать только формат массива .
Поиск выполняется с использованием PostCSS-Load-Config , и загружаются только поддерживаемые имена файлов конфигурации. Файлы конфигурации за пределами корневого уровня рабочей области (или корень проекта , если не найдено рабочего пространства) не выполняются по умолчанию. Вы можете указать пользовательский путь за пределами корня для загрузки конкретного файла конфигурации, если это необходимо.
Примечание Если предоставлена встроенная конфигурация, VITE не будет искать другие источники конфигурации PostCSS.
css.preprocessorOptions
- Тип:
Record<string, object>
Укажите параметры, которые можно перевести в предварительные процессоры CSS. Расширения файла используются в качестве ключей для параметров. Поддерживаемые варианты для каждого препроцессора можно найти в соответствующей документации:
sass
scss
- Выберите SASS API для использования с
API:« Современный компилятор » | "современный" | «Legacy»
(default«Современный компилятор»
if, внесенный в т. Д.
is installed, otherwise«современный»
). For the best performance, it's recommended to useAPI: «Современный компилятор»
with the, внесенный
package. The` «Наследие», «API устарел и будет удален в Vite 7. - Варианты (современный)
- Варианты (наследие) .
- Выберите SASS API для использования с
less
: параметры .styl
: поддерживается толькоdefine
, которые могут быть переданы какstylus
.
Пример:
export default defineConfig({
css: {
preprocessorOptions: {
less: {
math: 'parens-division',
},
styl: {
define: {
$specialColor: new stylus.nodes.RGBA(51, 197, 255, 1),
},
},
scss: {
api: 'modern-compiler', // или «современный», «наследие»
importers: [
// ...
],
},
},
},
})
css.preprocessorOptions[extension].additionalData
- Тип:
string | ((источник: String, имя файла: string) => (строка | {Content: String; Карта?: Sourcemap}))
Эта опция может быть использована для введения дополнительного кода для каждого контента стиля. Обратите внимание, что если вы включите реальные стили, а не только переменные, эти стили будут дублироваться в последнем пакете.
Пример:
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
additionalData: `$injectedColor: orange;`,
},
},
},
})
css.preprocessorMaxWorkers
- Экспериментальный: дайте обратную связь
- Тип: `номер | правда
- По умолчанию:
0
(не создает работников и не работает в основном потоке)
Если эта опция будет установлена, препроцессоры CSS будут работать у работников, когда это возможно. true
означает количество процессоров минус 1.
css.devSourcemap
- Экспериментальный: дайте обратную связь
- Тип:
boolean
- По умолчанию:
false
Сообщите ли Sourcemaps во время разработки.
css.transformer
- Экспериментальный: дайте обратную связь
- Тип: `'postcss' | 'Lightningcss'
- По умолчанию:
'postcss'
Выбирает двигатель, используемый для обработки CSS. Проверьте Lightning CSS для получения дополнительной информации.
Duplicate @import
s
Обратите внимание, что PostCSS (PostCSS-IMPORT) имеет другое поведение с дублированным @import
из браузеров. См. PostCSS/PostCSS-IMPORT#462 .
css.lightningcss
- Экспериментальный: дайте обратную связь
- Тип:
import type {
CSSModulesConfig,
Drafts,
Features,
NonStandard,
PseudoClasses,
Targets,
} from 'lightningcss'
{
targets?: Targets
include?: Features
exclude?: Features
drafts?: Drafts
nonStandard?: NonStandard
pseudoClasses?: PseudoClasses
unusedSymbols?: string[]
cssModules?: CSSModulesConfig,
// ...
}
Настраивает Lightning CSS. Полные варианты преобразования можно найти в репо Lightning CSS .
json.namedExports
- Тип:
boolean
- По умолчанию:
true
Поддерживать ли названные импорты из .json
файлов.
json.stringify
- Тип: `Boolean | «Авто»
- По умолчанию:
'auto'
Если установлено в true
, импортированный JSON будет преобразован в export default JSON.parse("...")
что значительно более эффективно, чем объектные литералы, особенно когда файл JSON большой.
Если установить на 'auto'
, данные будут строиться только в том случае, если данные превышают 10 КБ .
Esbuild
- Тип: `esbuildoptions | ложно
ESBuildOptions
расширяет собственные варианты преобразования Esbuild . Наиболее распространенным вариантом использования является настройка JSX:
export default defineConfig({
esbuild: {
jsxFactory: 'h',
jsxFragment: 'Fragment',
},
})
По умолчанию ESBUILD применяется к файлам ts
, jsx
и tsx
. Вы можете настроить это с помощью esbuild.include
и esbuild.exclude
, которые могут быть корпорацией, шаблоном Picomatch или массивом любого.
Кроме того, вы также можете использовать esbuild.jsxInject
для автоматического внедрения импорта JSX Helper для каждого файла, преобразованного Esbuild:
export default defineConfig({
esbuild: {
jsxInject: `import React from 'react'`,
},
})
Когда build.minify
составляет true
, все минифические оптимизации применяются по умолчанию. Чтобы отключить определенные аспекты этого, установите любой из esbuild.minifyIdentifiers
, esbuild.minifySyntax
или esbuild.minifyWhitespace
вариантов на false
. Примечание. Опция esbuild.minify
не может быть использован для переопределения build.minify
.
Установите false
, чтобы отключить преобразования ESBUILD.
AssetsInclude
- Тип:
string | Regexp | (нить | Regexp) []
- Связанный: Статическое обработка активов
Укажите дополнительные паттерны Picomatch , которые должны рассматриваться как статические активы, чтобы:
Они будут исключены из трубопровода преобразования плагинов при ссылке из HTML или непосредственно запрашиваны более
fetch
или XHR.Импорт их из JS вернет свою разрешенную строку URL -адреса (это может быть перезаписано, если у вас есть плагин
enforce: 'pre'
для по -разному обрабатывать тип актива).
Встроенный список типов активов можно найти здесь .
Пример:
export default defineConfig({
assetsInclude: ['**/*.gltf'],
})
loglevel
- Тип: `'Информация' | 'предупреждать' | 'ошибка' | «Тихо»
Настроить консольную выходную условность. По умолчанию 'info'
.
CustomLogger
- Тип:ts
interface Logger { info(msg: string, options?: LogOptions): void warn(msg: string, options?: LogOptions): void warnOnce(msg: string, options?: LogOptions): void error(msg: string, options?: LogErrorOptions): void clearScreen(type: LogType): void hasErrorLogged(error: Error | RollupError): boolean hasWarned: boolean }
Используйте пользовательский журнал для журнала сообщений. Вы можете использовать API Vite createLogger
, чтобы получить регистратор по умолчанию и настроить его, например, изменить сообщение или отфильтровать определенные предупреждения.
import { createLogger, defineConfig } from 'vite'
const logger = createLogger()
const loggerWarn = logger.warn
logger.warn = (msg, options) => {
// Игнорировать пустые файлы CSS
if (msg.includes('vite:css') && msg.includes(' is empty')) return
loggerWarn(msg, options)
}
export default defineConfig({
customLogger: logger,
})
чистый экран
- Тип:
boolean
- По умолчанию:
true
Установите на false
чтобы не допустить очистки экрана терминала при регистрации определенных сообщений. Через командную строку, используйте --clearScreen false
.
Envdir
- Тип:
string
- По умолчанию:
root
Каталог, из которого загружаются .env
файлов. Может быть абсолютным путем или пути относительно корня проекта.
Смотрите здесь для получения дополнительной информации о файлах окружающей среды.
envprefix
- Тип:
string | String []
- По умолчанию:
VITE_
Переменные env, начиная с envPrefix
будут подвергаться воздействию вашего клиента -исходного кода через import.meta.env.
SECURITY NOTES
envPrefix
не следует устанавливать как ''
, что будет обнародовать все ваши переменные ENV и вызывать неожиданную утечку конфиденциальной информации. VITE бросит ошибку при обнаружении ''
.
Если вы хотите разоблачить непреодолимую переменную, вы можете использовать определение , чтобы выставить ее:
define: {
'import.meta.env.ENV_VARIABLE': JSON.stringify(process.env.ENV_VARIABLE)
}
Apptype
- Тип: `'Spa' | 'mpa' | 'Custom »
- По умолчанию:
'spa'
Независимо от того, является ли ваше приложение приложением с одной страницей (SPA), многостраничным приложением (MPA) или пользовательским приложением (SSR и Frameworks с пользовательской обработкой HTML):
'spa'
: Включите HTML Middlewares и используйте Spa Swarkback. Настройте SIRV сsingle: true
в предварительном просмотре'mpa'
: Включите HTML Middlewares'custom'
: не включайте HTML Middlewares
Узнайте больше в Guide SSR Vite. Связанный: server.middlewareMode
.
будущее
- Тип:
record <String, 'предупреждение' | Неопределенный>
- Связанный: нарушающие изменения
Включить будущие нарушения изменений, чтобы подготовиться к плавной миграции в следующую крупную версию VITE. Список может быть обновлен, добавлен или удален в любое время по мере разработки новых функций.
Смотрите страницу «Разрывные изменения» для получения подробной информации о возможных вариантах.