Viteの構成
コマンドラインからvite
実行すると、Viteは自動的にプロジェクトルート内のvite.config.js
という名前の構成ファイルを解決しようとします(他のJSおよびTS拡張機能もサポートされています)。
最も基本的な構成ファイルは次のようになります:
export default {
// 構成オプション
}
注Viteは、プロジェクトがネイティブノードESMを使用していない場合でも、ESモジュールの構文type: "module"
構成ファイルに使用してサポートしますpackage.json
この場合、構成ファイルはロード前に自動処理されます。
--config
CLIオプションで使用する構成ファイルを明示的に指定することもできます( cwd
に対して解決されます):
vite --config my-config.js
CONFIG LOADING
デフォルトでは、Viteはesbuild
を使用して構成を一時ファイルにバンドルし、ロードします。これにより、MonorepoでTypeScriptファイルをインポートする際に問題が発生する可能性があります。このアプローチで問題が発生した場合は、代わりにモジュールランナーを使用するために--configLoader runner
指定できます。これは、一時的な構成を作成せず、その場でファイルを変換します。モジュールランナーは構成ファイルのCJSをサポートしていませんが、外部CJSパッケージは通常どおり機能するはずです。
または、TypeScript(EG node --experimental-strip-types
)をサポートする環境を使用している場合、またはPlane JavaScriptのみを書いている場合は、環境のネイティブランタイムを使用して構成ファイルをロードするために--configLoader native
指定できます。構成ファイルによってインポートされたモジュールへの更新は検出されないため、Viteサーバーを自動再構築しないことに注意してください。
構成IntelliSense
ViteはTypeScript Typingsを使用して出荷されるため、JSDOCタイプのヒントでIDEのIntelliSenseを活用できます。
/** @type {import( 'vite')。userconfig} */
export default {
// ...
}
または、JSDOCアノテーションを必要とせずにIntelliSenseを提供する必要があるdefineConfig
ヘルパーを使用できます。
import { defineConfig } from 'vite'
export default defineConfig({
// ...
})
ViteはTypeScript構成ファイルもサポートしています。上記のdefineConfig
ヘルパー関数、またはsatisfies
演算子でvite.config.ts
使用できます。
import type { UserConfig } from 'vite'
export default {
// ...
} satisfies UserConfig
条件付き設定
Configがコマンド( serve
またはbuild
)に基づいてオプションを条件付けて決定する必要がある場合、使用されているモード、SSRビルド( isSsrBuild
)の場合、またはビルド( isPreview
)の場合、代わりに関数をエクスポートできます。
import { defineConfig } from 'vite'
// - -カット - -
export default defineConfig(({ command, mode, isSsrBuild, isPreview }) => {
if (command === 'serve') {
return {
// 開発固有の構成
}
} else {
// コマンド=== 'ビルド'
return {
// 特定の構成を作成します
}
}
})
ViteのAPIでは、DEV(CLI vite
、およびvite serve
vite dev
)の間はcommand
値がserve
で、生産用に構築されるときはbuild
あることに注意することが重要です( vite build
)。
isSsrBuild
とisPreview
、それぞれbuild
とserve
コマンドの種類を区別するための追加のオプションフラグです。 Vite構成をロードするいくつかのツールは、これらのフラグをサポートせず、代わりにundefined
渡す場合があります。したがって、 true
とfalse
に対する明示的な比較を使用することをお勧めします。
async config
構成がASYNC関数を呼び出す必要がある場合、代わりに非同期関数をエクスポートできます。また、この非同期関数は、Intellisenseサポートを改善するためにdefineConfig
に渡すこともできます。
import { defineConfig } from 'vite'
// - -カット - -
export default defineConfig(async ({ command, mode }) => {
const data = await asyncFunction()
return {
// Vite Config
}
})
構成の環境変数を使用します
環境変数は、通常どおりprocess.env
から取得できます。
viteは、Vite構成を評価した後にのみ決定できるため、デフォルトで.env
ファイルをロードしないことに注意してください。たとえば、 root
とenvDir
オプションは負荷の動作に影響します。ただし、エクスポートされたloadEnv
ヘルパーを使用して、必要に応じて特定の.env
ファイルをロードできます。
import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ mode }) => {
// 現在の作業ディレクトリの`mode`に基づいてENVファイルをロードします。
// 3番目のパラメーターを ''に設定します。
// `VITE_`プレフィックス。
const env = loadEnv(mode, process.cwd(), '')
return {
// Vite Config
define: {
__APP_ENV__: JSON.stringify(env.APP_ENV),
},
}
})