Skip to content

オプションを構築します

記載されていない限り、このセクションのオプションはビルドにのみ適用されます。

build.target

最終バンドルのブラウザ互換性ターゲット。デフォルト値は、ネイティブESモジュールネイティブESMの動的インポートimport.metaサポートを備えたブラウザをターゲットにするVite Special Value 'modules'です。 Viteは'modules' ['es2020', 'edge88', 'firefox78', 'chrome87', 'safari14']置き換えます

別の特別な値は'esnext'です。これは、ネイティブの動的輸入サポートを想定しており、最小限の輸送のみを実行します。

変換はesbuildで実行され、値は有効なesbuildターゲットオプションである必要があります。カスタムターゲットは、ESバージョン(EG es2015 )、バージョンを備えたブラウザ( chrome58 )、または複数のターゲット文字列の配列のいずれかです。

注コードがEsbuildで安全に輸送できない機能が含まれている場合、ビルドが失敗することに注意してください。詳細については、 esbuild docsを参照してください。

build.modulePreload

  • タイプ: Boolean | {polyfill?:boolean、resolvedependencies?:ResolvemodulePreloAddependenciesfn}
  • デフォルト: { polyfill: true }

デフォルトでは、モジュールのプリロードポリフィルが自動的に注入されます。ポリフィルは、各index.htmlエントリのプロキシモジュールに自動注入されます。ビルドがbuild.rollupOptions.input介して非HTMLカスタムエントリを使用するように構成されている場合、カスタムエントリでポリフィルを手動でインポートする必要があります。

js
import 'vite/modulepreload-polyfill'

注:ポリフィルはライブラリモードには適用されません。ネイティブの動的インポートなしでブラウザをサポートする必要がある場合は、おそらくライブラリで使用を避ける必要があります。

ポリフィルは{ polyfill: false }を使用して無効にすることができます。

各動的インポートのプリロードへのチャンクのリストは、Viteによって計算されます。デフォルトでは、これらの依存関係をロードするときにbaseを含む絶対パスが使用されます。 baseが相対( ''または'./' )の場合、実行時にimport.meta.url使用され、最終展開されたベースに依存する絶対パスを回避します。

resolveDependencies関数を使用して、依存関係リストとそれらのパスに対する細かい粒子制御を実験的にサポートしています。フィードバックを与えます。タイプResolveModulePreloadDependenciesFnの関数を期待しています:

ts
type ResolveModulePreloadDependenciesFn = (
  url: string,
  deps: string[],
  context: {
    hostId: string
    hostType: 'html' | 'js'
  },
) => string[]

resolveDependencies関数は、それが依存するチャンクのリストを使用して各動的インポートに対して呼び出され、エントリHTMLファイルにインポートされた各チャンクに対しても呼び出されます。これらのフィルタリングされた依存関係またはより多くの依存関係を挿入し、それらのパスを変更して、新しい依存関係配列を返すことができます。 depsパスはbuild.outDirに関連しています。返品値はbuild.outDirへの相対的なパスである必要があります。

js
/** @type {import( 'vite')。userconfig} */
const 
config
= {
// きれいなイグノア
build
: {
// ---カット前---
modulePreload
: {
resolveDependencies
: (
filename
,
deps
, {
hostId
,
hostType
}) => {
return
deps
.filter(condition)
}, }, // ---カット後--- }, }

分解された依存関係パスは、 experimental.renderBuiltUrlを使用してさらに変更できます。

build.polyfillModulePreload

  • タイプ: boolean
  • デフォルト: true
  • 代わりに非推奨使用build.modulePreload.polyfill

モジュールのプリロードポリフィルを自動的に挿入するかどうか。

build.outDir

  • タイプ: string
  • デフォルト: dist

出力ディレクトリを指定します(プロジェクトルートに関連して)。

build.assetsDir

  • タイプ: string
  • デフォルト: assets

下のネスト生成資産にディレクトリを指定します( build.outDirに比べて。これはライブラリモードでは使用されません)。

build.assetsInlineLimit

  • タイプ: number | ((filepath:string、content:buffer)=> boolean | 未定義)
  • デフォルト: 4096 (4キブ)

このしきい値よりも小さいインポートまたは参照された資産は、追加のHTTP要求を避けるためにBase64 URLとしてインラードされます。 0に設定して、インラインを完全に無効にします。

コールバックが渡された場合、ブール値を返してオプトインまたはオプトアウトします。何も返されない場合、デフォルトのロジックが適用されます。

GIT LFSプレースホルダーは、表すファイルのコンテンツが含まれていないため、インラインから自動的に除外されます。

Note

build.lib指定した場合、 build.assetsInlineLimit無視され、ファイルサイズやGit LFSプレースホルダーであることに関係なく、常に資産がインラキングされます。

build.cssCodeSplit

  • タイプ: boolean
  • デフォルト: true

CSSコードの分割を有効/無効にします。有効にすると、Async JSチャンクにインポートされたCSSは、チャンクとして保存され、チャンクがフェッチされると一緒にフェッチします。

無効になっている場合、プロジェクト全体のすべてのCSSが単一のCSSファイルに抽出されます。

Note

build.lib指定した場合、 build.cssCodeSplitデフォルトとしてfalseになります。

build.cssTarget

  • タイプ: 文字列 | 文字列[]
  • デフォルト: build.targetと同じ

このオプションを使用すると、ユーザーはJavaScriptトランスピレーションに使用されているものからCSSの模倣の別のブラウザターゲットを設定できます。

非メインストリームブラウザをターゲットにしている場合にのみ使用する必要があります。 1つの例は、Android Wechat WebViewです。これは、ほとんどの最新のJavaScript機能をサポートしていますが、 CSSの#RGBAヘクサデシマルカラー表記をサポートしていません。 この場合、Viteがrgba()色を#RGBA進表に変換するのを防ぐために、 build.cssTarget chrome61設定する必要があります。

build.cssMinify

  • タイプ: `Boolean | 「esbuild」 | 「lightningcss」
  • **デフォルト:**クライアントのbuild.minifyと同じ、SSRの場合は'esbuild'

このオプションを使用すると、ユーザーはbuild.minifyではなくCSSの模倣をオーバーライドすることができるため、JSとCSSの模倣を個別に構成できます。 Viteはデフォルトでesbuild使用してCSSを削除します。代わりに稲妻CSSを使用するには、オプションを'lightningcss'に設定します。選択した場合、 css.lightningcss使用して構成できます。

build.sourcemap

  • タイプ: `Boolean | '列をなして' | 「隠されています」
  • デフォルト: false

生産ソースマップを生成します。 trueの場合、個別のSourceMapファイルが作成されます。 'inline'場合、sourcemapは結果の出力ファイルにデータURIとして追加されます。バンドルされたファイルの対応するSourceMapコメントが抑制されていることを除いて、 trueように'hidden'動作があります。

build.rollupOptions

基礎となるロールアップバンドルを直接カスタマイズします。これは、ロールアップ構成ファイルからエクスポートできるオプションと同じで、Viteの内部ロールアップオプションと融合します。詳細については、ロールアップオプションドキュメントを参照してください。

build.commonjsOptions

@rollup/Plugin-Commonjsに渡すオプション。

build.dynamicImportVarsOptions

@rollup/plugin-dynamic-import-varsに渡すオプション。

build.lib

  • タイプ: {entry:string | 弦[] | {[entrealias:string]:string}、name?:string、formats?:( 'es' | 「CJS」 | 「umd」 | 'iife')[]、filename?:文字列 | ((フォーマット:moduleformat、entryName:string)=> string)、cssfileName?:string}
  • 関連:ライブラリモード

ライブラリとして構築します。ライブラリはEntryとしてHTMLを使用できないため、 entry必要です。 name露出したグローバル変数であり、 formats 'umd'または'iife'含む場合に必要です。複数のエントリが使用される場合、デフォルトformats ['es', 'umd']または['es', 'cjs']です。

fileNameはパッケージファイル出力の名前で、デフォルトはpackage.json分の"name"になります。また、 formatentryName引数として取得し、ファイル名を返す関数として定義することもできます。

パッケージがCSSをインポートする場合、 cssFileName使用してCSSファイル出力の名前を指定できます。文字列を設定している場合、デフォルトはfileNameと同じ値になります。そうしないと、 package.json分の"name"にも戻ります。

vite.config.js
js
import { 
defineConfig
} from 'vite'
export default
defineConfig
({
build
: {
lib
: {
entry
: ['src/main.js'],
fileName
: (
format
,
entryName
) => `my-lib-${
entryName
}.${
format
}.js`,
cssFileName
: 'my-lib-style',
}, }, })

build.manifest

ハッシュされたバージョンへの非ハッシュされたアセットファイル名のマッピングを含むマニフェストファイルを生成するかどうか。これをサーバーフレームワークで使用して、正しいアセットリンクをレンダリングすることができます。

値が文字列の場合、 build.outDirに対するマニフェストファイルパスとして使用されます。 trueに設定すると、パスは.vite/manifest.jsonなります。

build.ssrManifest

スタイルリンクを決定するためのSSRマニフェストファイルを生成するかどうか、および生産におけるアセットプリロードディレクティブを決定します。

値が文字列の場合、 build.outDirに対するマニフェストファイルパスとして使用されます。 trueに設定すると、パスは.vite/ssr-manifest.jsonなります。

build.ssr

SSR指向のビルドを生成します。値は、SSRエントリを直接指定する文字列trueある可能性がありますrollupOptions.input

build.emitAssets

  • タイプ: boolean
  • デフォルト: false

非クライアントビルド中、クライアントビルドの一部として放出されると想定されるため、静的資産は放出されません。このオプションにより、フレームワークは他の環境ビルドでそれらを強制的に放出できます。資産をポストビルドステップと統合することは、フレームワークの責任です。

build.ssrEmitAssets

  • タイプ: boolean
  • デフォルト: false

SSRビルド中、クライアントビルドの一部として放出されると想定されるため、静的資産は放出されません。このオプションにより、フレームワークはクライアントとSSRビルドの両方でそれらを強制的に放出できます。資産をポストビルドステップと統合することは、フレームワークの責任です。このオプションは、環境APIが安定するとbuild.emitAssetsに置き換えられます。

build.minify

  • タイプ: `Boolean | 「テルサー」 | 「esbuild」
  • **デフォルト:**クライアントビルドの場合は'esbuild' 、SSRビルドのfalse

falseに設定して、削除を無効にするか、使用するミニファイアを指定します。デフォルトは、Terserより20〜40倍高速で、圧縮が1〜2%しか速いesbuildです。ベンチマーク

build.minifyオプションは、純粋な注釈を削除してツリーシェーキングを破壊するため、LIBモードで'es'形式を使用するときに、Whitespacesを縮小しないことに注意してください。

'terser'に設定されている場合は、Terserをインストールする必要があります。

sh
npm add -D terser

build.terserOptions

  • タイプ: TerserOptions

Terserに渡すための追加のマイニフィスオプション

さらに、 maxWorkers: numberオプションを渡して、最大数の労働者を指定してスポーンすることもできます。デフォルトはCPUマイナス1の数です。

build.write

  • タイプ: boolean
  • デフォルト: true

falseに設定して、バンドルをディスクに書き込むことを無効にします。これは主にプログラマティックbuild()コールで使用され、ディスクに書き込む前にバンドルのさらなる後処理が必要です。

build.emptyOutDir

  • タイプ: boolean
  • デフォルト: outDirrootの場合はtrue

デフォルトでは、Viteがプロジェクトルート内にある場合、ビルドでoutDirを空にします。重要なファイルが誤って削除されないように、 outDirルートの外側にある場合、警告が発生します。このオプションを明示的に設定して、警告を抑制できます。これは、コマンドラインから--emptyOutDirとしても利用できます。

build.copyPublicDir

  • タイプ: boolean
  • デフォルト: true

デフォルトでは、ViteはビルドのpublicDirからoutDirにファイルをコピーします。これを無効にするためにfalseに設定します。

build.reportCompressedSize

  • タイプ: boolean
  • デフォルト: true

GZIP圧縮サイズのレポートを有効/無効にします。大規模な出力ファイルを圧縮すると遅くなる可能性があるため、これを無効にすると、大規模なプロジェクトのビルドパフォーマンスが向上する可能性があります。

build.chunkSizeWarningLimit

  • タイプ: number
  • デフォルト: 500

チャンクサイズの警告の制限(KB)。 JavaScriptサイズ自体が実行時間に関連しているため、非圧縮チャンクサイズと比較されます。

build.watch

ロールアップウォッチャーを有効にするには、 {}に設定します。これは、主にビルドのみのプラグインまたは統合プロセスを含む場合に使用されます。

Using Vite on Windows Subsystem for Linux (WSL) 2

ファイルシステムがWSL2で動作しない場合があります。 詳細については、 server.watch参照してください。

Released under the MIT License. (dev)