From 2b96c274d2901b97ec58b8f341b8b03c5f718c0a Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Fri, 18 Oct 2024 15:59:59 +0900 Subject: [PATCH 1/2] docs: clarify `target` in `tsconfig.json` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit resolve #1623 https://github.com/vitejs/vite/commit/dcf5f03cb5c0a4a178fc7a97c43ac7c134749dcf の反映です。 --- guide/features.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guide/features.md b/guide/features.md index fd3c0ba2..44d92c63 100644 --- a/guide/features.md +++ b/guide/features.md @@ -88,12 +88,12 @@ Vite 2.5.0 からは、TypeScript ターゲットが `ESNext` か `ES2022` 以 - [TypeScript ドキュメント](https://www.typescriptlang.org/tsconfig#target) -Vite はデフォルトでは設定された `target` 値で TypeScript をトランスパイルせず、`esbuild` と同じ動作に従います。 +Vite は `esbuild` と同じ動作に従い、`tsconfig.json` 内の `target` の値を無視します。 -代わりに [`esbuild.target`](/config/shared-options.html#esbuild) オプションを使用することができ、トランスパイルを最小限に抑えるためにデフォルトで `esnext` に設定されます。ビルドでは、[`build.target`](/config/build-options.html#build-target) オプションが優先され、必要に応じて設定することができます。 +開発中に target を指定するには [`esbuild.target`](/config/shared-options.html#esbuild) オプションを使用することができ、トランスパイルを最小限に抑えるためにデフォルトで `esnext` に設定されます。ビルドでは、[`build.target`](/config/build-options.html#build-target) オプションが優先され、必要に応じて設定することができます。 ::: warning `useDefineForClassFields` -`target` が `ESNext` または `ES2022` 以降でない場合、または `tsconfig.json` ファイルがない場合、`useDefineForClassFields` のデフォルトは `false` になり、`esbuild.target` のデフォルト値が `esnext` の場合に問題が発生する可能性があります。これは[静的初期化ブロック](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks#browser_compatibility)にトランスパイルされる可能性があり、ブラウザーでサポートされていない可能性があります。 +`tsconfig.json` 内の `target` が `ESNext` または `ES2022` 以降でない場合、または `tsconfig.json` ファイルがない場合、`useDefineForClassFields` のデフォルトは `false` になり、`esbuild.target` のデフォルト値が `esnext` の場合に問題が発生する可能性があります。これは[静的初期化ブロック](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks#browser_compatibility)にトランスパイルされる可能性があり、ブラウザーでサポートされていない可能性があります。 そのため、`tsconfig.json` を設定する際には、`target` を `ESNext` または `ES2022` 以降に設定するか、`useDefineForClassFields` を明示的に `true` に設定することをおすすめします。 ::: From ad7ddad24b6da58d5419e767fec25fd19d9e98e6 Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Fri, 18 Oct 2024 22:24:29 +0900 Subject: [PATCH 2/2] Update guide/features.md Co-authored-by: Jun Shindo <46585162+jay-es@users.noreply.github.com> --- guide/features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/features.md b/guide/features.md index 44d92c63..8f483fb1 100644 --- a/guide/features.md +++ b/guide/features.md @@ -93,7 +93,7 @@ Vite は `esbuild` と同じ動作に従い、`tsconfig.json` 内の `target` 開発中に target を指定するには [`esbuild.target`](/config/shared-options.html#esbuild) オプションを使用することができ、トランスパイルを最小限に抑えるためにデフォルトで `esnext` に設定されます。ビルドでは、[`build.target`](/config/build-options.html#build-target) オプションが優先され、必要に応じて設定することができます。 ::: warning `useDefineForClassFields` -`tsconfig.json` 内の `target` が `ESNext` または `ES2022` 以降でない場合、または `tsconfig.json` ファイルがない場合、`useDefineForClassFields` のデフォルトは `false` になり、`esbuild.target` のデフォルト値が `esnext` の場合に問題が発生する可能性があります。これは[静的初期化ブロック](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks#browser_compatibility)にトランスパイルされる可能性があり、ブラウザーでサポートされていない可能性があります。 +`tsconfig.json` 内の `target` が `ESNext` または `ES2022` 以降でない場合、または `tsconfig.json` ファイルがない場合、`useDefineForClassFields` のデフォルトは `false` になり、`esbuild.target` のデフォルト値が `esnext` の場合に問題が発生する可能性があります。これは[静的初期化ブロック](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks#browser_compatibility)にトランスパイルされる可能性があり、ブラウザーでサポートされていない可能性があります。 そのため、`tsconfig.json` を設定する際には、`target` を `ESNext` または `ES2022` 以降に設定するか、`useDefineForClassFields` を明示的に `true` に設定することをおすすめします。 :::