Skip to content

フックでthis.environment

Feedback

環境APIフィードバックディスカッションでフィードバックを提供してください

Vite 6の前に、2つの環境のみが利用可能でした: clientssrresolveId 、およびtransform単一のoptions.ssrプラグインフック引数により、プラグインの著者はloadプラグインフックのモジュールを処理するときに、これら2つの環境を区別することができました。 Vite 6では、Viteアプリケーションは、必要に応じて、任意の数の指定環境を定義できます。プラグインコンテキストにthis.environment導入して、フック内の現在のモジュールの環境と対話します。

影響範囲: Vite Plugin Authors

Future Deprecation

this.environment v6.0に導入されました。 options.ssrの非推奨はv7.0で計画されています。その時点で、新しいAPIを使用するようにプラグインを移行することを推奨し始めます。使用法を識別するには、Vite Configでfuture.removePluginHookSsrArgument "warn"設定します。

モチベーション

this.environmentプラグインフックの実装が現在の環境名を知るだけでなく、環境設定オプション、モジュールグラフ情報、パイプenvironment.transformRequest() environment.moduleGraph変換( environment.config )へのアクセスも提供します。コンテキストで環境インスタンスを使用できるようにすることで、プラグインの著者は開発者全体の依存関係を回避できます(通常、 configureServerフックを介して起動時にキャッシュされます)。

移行ガイド

既存のプラグインが迅速な移行を行うには、 options.ssr引数をresolveId 、およびtransformフックのthis.environment.name !== 'client'に置き換えますload

ts
import { Plugin } from 'vite'

export function myPlugin(): Plugin {
  return {
    name: 'my-plugin',
    resolveId(id, importer, options) {
      const isSSR = options.ssr // [!code-]
      const isSSR = this.environment.name !== 'client' // [!code ++]

      if (isSSR) {
        // SSR固有のロジック
      } else {
        // クライアント固有のロジック
      }
    },
  }
}

より堅牢な長期的な実装のために、プラグインフックは、環境名に依存する代わりに、きめ細かい環境オプションを使用して複数の環境に対処する必要があります。

Released under the MIT License. (dev)