string
process.cwd()
프로젝트 루트 디렉터리(여기에 index.html
이 위치함)입니다. 절대 경로 또는 현재 작업 디렉터리를 기준으로 한 상대 경로가 될 수 있습니다.
자세한 내용은 프로젝트 루트를 참조하세요.
string
/
server.origin
개발 또는 프로덕션에서 제공될 때 기본 공개 경로입니다. 유효한 값은 다음과 같습니다:
/foo/
https://foo.com/
(개발 시 원본 부분은 사용되지 않음)./
(내장 배포용)자세한 내용은 공개 기본 경로를 참조하세요.
string
serve
의 경우 'development'
, build
의 경우 'production'
이 설정을 구성하면 서빙과 빌드 모두에 대한 기본 모드를 무시합니다. 이 값은 명령 줄 --mode
옵션을 통해 재정의할 수도 있습니다.
자세한 내용은 환경 변수 및 모드를 참조하세요.
Record<string, any>
전역 상수 대체를 정의합니다. 항목은 개발 중에 전역으로 정의되고 빌드 중에 정적으로 대체됩니다.
Vite는 대체를 수행하기 위해 esbuild defines를 사용하므로 값 표현식은 문자열이어야 하며 JSON 직렬화 가능한 값 (null, boolean, number, string, array 또는 object) 또는 단일 식별자여야 합니다. 문자열이 아닌 값의 경우 Vite는 자동으로 JSON.stringify를 사용하여 문자열로 변환합니다.
예시:
export default defineConfig({
define: {
__APP_VERSION__: JSON.stringify('v1.0.0'),
__API_URL__: 'window.__backend_api_url',
},
})
참고
TypeScript 사용자는 타입 체크와 Intellisense를 얻으려면 env.d.ts
또는 vite-env.d.ts
파일에 타입 선언을 추가해야 합니다.
예시:
// vite-env.d.ts
declare const __APP_VERSION__: string
(Plugin | Plugin[] | Promise<Plugin | Plugin[]>)[]
사용할 플러그인 배열입니다. 거짓인 플러그인은 무시되며 플러그인 배열은 평탄화됩니다. 프로미스가 반환되면 실행되기 전에 해결됩니다. Vite 플러그인에 대한 자세한 내용은 Plugin API를 참조하세요.
string | false
"public"
일반 정적 에셋으로 제공할 디렉터리입니다. 이 디렉터리의 파일은 개발 중에 /
에서 제공되고 빌드 중에는 outDir
의 루트로 복사되며 변형 없이 항상 제공되거나 복사됩니다. 값은 절대 파일 시스템 경로 또는 프로젝트 루트를 기준으로 한 경로일 수 있습니다.
publicDir
를 false
로 정의하면 이 기능이 비활성화됩니다.
자세한 내용은 public 디렉터리를 참조하세요.
string
"node_modules/.vite"
캐시 파일을 저장할 디렉터리입니다. 이 디렉터리의 파일은 미리 번들링된 종속성 또는 Vite에서 생성한 기타 캐시 파일로 개선될 수 있습니다. 캐시 파일을 다시 생성하려면 --force
플래그를 사용하거나 디렉터리를 수동으로 삭제할 수 있습니다. 값은 절대 파일 시스템 경로 또는 프로젝트 루트를 기준으로 한 경로일 수 있습니다. package.json이 감지되지 않을 때 기본값은 .vite
입니다.
Record<string, string> | Array<{ find: string | RegExp, replacement: string, customResolver?: ResolverFunction | ResolverObject }>
@rollup/plugin-alias
에 전달될 것입니다. 객체 또는 { find, replacement, customResolver }
쌍의 배열이 될 수 있습니다.
파일 시스템 경로에 별칭을 지정할 때는 항상 절대 경로를 사용하세요. 상대 별칭 값은 그대로 사용되며 파일 시스템 경로로 해결되지 않습니다.
더 고급 사용자 지정 해결은 플러그인을 통해 달성할 수 있습니다.
SSR 사용
SSR 외부 종속성에 대한 별칭을 구성한 경우 실제 node_modules
패
키지에 별칭을 지정해야 할 수 있습니다. Yarn 및 pnpm은 npm:
접두사를 사용하여 별칭을 지정할 수 있습니다.
string[]
앱에 동일한 종속성의 중복된 사본이 있는 경우 (일반적으로 호이스팅 또는 모노 레포지토리에서 링크된 패키지 때문에 발생함)이 옵션을 사용하여 항상 동일한 사본으로 해결하도록 Vite에 지시할 수 있습니다.
SSR + ESM
SSR 빌드의 경우 ESM 빌드 출력에서는 build.rollupOptions.output
로 구성된 ESM에 대해 중복 제거가 작동하지 않습니다. ESM이 모듈 로딩에 대한 더 나은 플러그인 지원을 할 때까지 CJS 빌드 출력을 사용하는 것이 해결 방법입니다.
string[]
패키지에서 조건부 내보내기를 해결할 때 추가로 허용되는 조건입니다.
조건부 내보내기를 가진 패키지는 다음과 같은 package.json
의 exports
필드를 가질 수 있습니다:
json
{
"exports": {
".": {
"import": "./index.mjs",
"require": "./index.js"
}
}
}
여기서 import
및 require
는 "조건"입니다. 조건은 중첩될 수 있으며 가장 구체적인 것부터 가장 일반적인 것으로 지정해야 합니다.
Vite에는 "허용된 조건" 목록이 있으며, Vite는 허용된 목록에 있는 첫 번째 조건을 일치시킵니다. 기본 허용된 조건은 현재 모드에 따라 import
, module
, browser
, default
및 production/development
입니다. resolve.conditions
구성 옵션을 사용하여 추가 허용된 조건을 지정할 수 있습니다.
하위 경로 내보내기 해결
"/"로 끝나는 내보내기 키는 Node에서 사용이 중지되었으며 잘 작동하지 않을 수 있습니다. 패키지 작성자에게 연락하여 *
하위 경로 패턴을 사용하도록 요청하세요.
string[]
['browser', 'module', 'jsnext:main', 'jsnext']
패키지의 진입점을 해결할 때 시도할 package.json
의 필드 목록입니다. 조건부 내보내기로부터 해결된 경우 이것은 낮은 우선순위를 가집니다: 진입점이 exports
에서 성공적으로 해결되면 메인 필드가 무시됩니다.
string[]
['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']
확장자를 생략한 가져오기에 대한 시도할 파일 확장자 목록입니다. 사용자 지정 가져오기 유형 (예: .vue
)에 대해 확장자를 생략하지 않는 것은 권장되지 않습니다. IDE 및 유형 지원과 충돌할 수 있습니다.
boolean
false
이 설정을 활성화하면 Vite는 원본 파일 경로 (즉, 심볼릭 링크를 따르기 전의 경로)를 사용하여 파일 식별을 결정하고 실제 파일 경로 (즉, 심볼릭 링크를 따른 후의 경로)를 사용하지 않습니다.
string
스크립트/스타일 태그 생성 시 사용할 논스 값 플레이스홀더입니다. 이 값을 설정하면 논스 값을 사용하여 메타 태그를 생성합니다.
CSS 모듈 동작을 구성합니다. 이 옵션은 postcss-modules로 전달됩니다.
이 옵션은 라이트닝 CSS를 사용할 때는 효과가 없습니다. 활성화된 경우 대신 css.lightningcss.cssModules
를 사용해야 합니다.
인라인 PostCSS 설정 또는 사용자 지정 디렉토리를 지정하여 PostCSS 설정을 검색합니다 (기본값은 프로젝트 루트).
인라인 PostCSS 설정의 경우 postcss.config.js
와 동일한 형식을 기대합니다. 그러나 plugins
속성의 경우 배열 형식만 사용할 수 있습니다.
검색은 postcss-load-config를 사용하여 수행되며 지원되는 설정 파일 이름만 로드됩니다.
참고: 인라인 구성이 제공된 경우 Vite는 다른 PostCSS 구성 소스를 검색하지 않습니다.
CSS 전처리기에 전달할 옵션을 지정합니다. 파일 확장자가 옵션의 키로 사용됩니다. 각 전처리기에 대한 지원되는 옵션은 해당 문서에서 확인할 수 있습니다.
예:
export default defineConfig({
css: {
preprocessorOptions: {
less: {
math: 'parens-division',
},
styl: {
define: {
$specialColor: new stylus.nodes.RGBA(51, 197, 255, 1),
},
},
},
},
})
이 옵션은 각 스타일 내용에 대해 추가 코드를 주입하는 데 사용될 수 있습니다. 실제 스타일을 포함하고 변수가 아닌 경우 최종 번들에서 해당 스타일이 중복될 수 있습니다.
예:
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
additionalData: `$injectedColor: orange;`,
},
},
},
})
number | true
0
(어떠한 워커도 생성하지 않고 메인 스레드에서 실행)이 옵션이 설정된 경우 CSS 전처리기는 가능한 경우 워커에서 실행됩니다. true
는 CPU 수에서 1을 뺀 값입니다.
boolean
false
개발 중에 소스맵을 활성화할지 여부입니다.
'postcss' | 'lightningcss'
'postcss'
CSS 처리에 사용할 엔진을 선택합니다. 자세한 내용은 라이트닝 CSS를 확인하세요.
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,
// ...
}
라이트닝 CSS를 구성합니다. 전체 변환 옵션은 라이트닝 CSS 저장소에서 확인할 수 있습니다.
boolean
true
.json
파일에서 명명된 import를 지원할지 여부입니다.
boolean
false
true
로 설정하면 가져온 JSON이 export default JSON.parse("...")
으로 변환됩니다. 특히 JSON 파일이 큰 경우에는 Object literals보다 훨씬 더 성능이 우수합니다.
이를 활성화하면 명명된 import가 비활성화됩니다.
ESBuildOptions | false
ESBuildOptions
은 esbuild의 자체 변환 옵션을 확장합니다. 가장 일반적인 사용 사례는 JSX를 사용자 정의하는 것입니다.
기본적으로 esbuild는 ts
, jsx
, tsx
파일에 적용됩니다. 이를 사용자 지정하려면 esbuild.include
와 esbuild.exclude
을 사용할 수 있습니다. 이는 정규식, picomatch 패턴 또는 이들의 배열일 수 있습니다.
또한 esbuild에 의해 변환된 모든 파일에 JSX 헬퍼 임포트를 자동으로 주입하려면 esbuild.jsxInject
를 사용할 수 있습니다.
build.minify
가 true
로 설정된 경우 기본적으로 모든 최소화 최적화가 적용됩니다. 이를 비활성화하려면 esbuild.minifyIdentifiers
, esbuild.minifySyntax
, 또는 esbuild.minifyWhitespace
중 하나의 옵션을 false
로 설정하면 됩니다. esbuild의 esbuild.minify
옵션을 override할 수 없다는 점에 유의하세요.
esbuild 변환을 비활성화하려면 false
로 설정합니다.
string | RegExp | (string | RegExp)[]
정적 자산으로 처리할 추가 picomatch 패턴을 지정합니다. 이렇게 하면:
fetch
또는 XHR을 통해 요청될 때 플러그인 변환 파이프라인에서 제외됩니다.enforce: 'pre'
플러그인이 다르게 처리하도록 할 수 있습니다).내장 자산 유형 목록은 여기에서 찾을 수 있습니다.
예:
export default defineConfig({
assetsInclude: ['**/*.gltf'],
})
'info' | 'warn' | 'error' | 'silent'
콘솔 출력의 상세도를 조정합니다. 기본값은 'info'
입니다.
타입:
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
}
메시지를 로깅하는 데 사용자 지정 로거를 사용합니다. Vite의 createLogger
API를 사용하여 기본 로거를 가져온 다음 메시지를 변경하거나 특정 경고를 필터링하는 등 사용자 정의할 수 있습니다.
예:
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
특정 메시지를 로깅할 때 Vite가 터미널 화면을 지우지 않도록 false
로 설정합니다. 명령 줄에서는 --clearScreen false
를 사용합니다.
string
root
.env
파일이 로드되는 디렉토리입니다. 절대 경로이거나 프로젝트 루트를 기준으로 한 상대 경로일 수 있습니다.
환경 파일에 대한 자세한 내용은 여기를 참조하십시오.
string | string[]
VITE_
envPrefix
로 시작하는 환경 변수는 클라이언트 소스 코드에서 import.meta.env
를 통해 노출됩니다.
보안 참고:
envPrefix
를 ''
로 설정하면 모든 환경 변수가 노출되어 민감한 정보가 누출될 수 있습니다. Vite는 ''
을 감지하면 오류를 throw합니다.
접두어가 없는 변수를 노출하려면 define
을 사용하여 노출할 수 있습니다:
define: {
'import.meta.env.ENV_VARIABLE': JSON.stringify(process.env.ENV_VARIABLE)
}
'spa' | 'mpa' | 'custom'
'spa'
당신의 애플리케이션이 단일 페이지 애플리케이션(SPA), 다중 페이지 애플리케이션(MPA), 또는 사용자 정의 애플리케이션(SSR 및 사용자 정의 HTML 처리 프레임워크)인지 여부에 관계없이 다음을 따르십시오: