コンテンツへスキップ

プロジェクト理念

リーンで拡張可能なコア

Vite は、すべてのユーザーのすべてのユースケースをカバーすることを意図していません。Vite は、Web アプリをすぐに構築するための最も一般的なパターンをサポートすることを目的としていますが、Vite コアは、プロジェクトを長期的に保守可能にするために、小さな API サーフェスでリーンな状態を維持する必要があります。この目標は、Vite の Rollup ベースのプラグインシステムのおかげで可能になります。外部プラグインとして実装できる機能は、一般的に Vite コアに追加されません。vite-plugin-pwaは、Vite コア外で何が達成できるかの素晴らしい例であり、ニーズを満たす十分にメンテナンスされたプラグインがたくさんあります。Vite は Rollup プロジェクトと緊密に連携し、プラグインが可能な限りプレーンな Rollup プロジェクトと Vite プロジェクトの両方で使用できるようにし、必要な拡張機能を可能な場合は Plugin API に上流にプッシュしようとしています。

モダンウェブの推進

Vite は、モダンなコードの記述を推進する独自の機能を提供します。例えば

  • ソースコードは ESM でのみ記述でき、非 ESM の依存関係は動作するためにESM としてプリバンドルする必要があります。
  • Web Worker は、モダンな標準に従うために、new Worker 構文で記述することが推奨されます。
  • Node.js モジュールはブラウザでは使用できません。

新機能を追加する際には、これらのパターンに従って、他のビルドツールと互換性がない可能性のある将来を見据えた API を作成します。

パフォーマンスへの実用的なアプローチ

Vite はその起源からパフォーマンスに焦点を当ててきました。その開発サーバーアーキテクチャにより、プロジェクトが拡大しても高速な HMR が可能になります。Vite は、esbuildSWCなどのネイティブツールを使用して集中的なタスクを実装しますが、速度と柔軟性のバランスをとるために残りのコードは JS で保持します。必要な場合、フレームワークプラグインはBabelを利用してユーザーコードをコンパイルします。また、ビルド時には、Vite は現在Rollupを使用しています。ここでは、バンドルサイズと、広範なプラグインのエコシステムにアクセスすることが、生の速度よりも重要です。Vite は、API を安定させたまま DX を改善するために、新しいライブラリが登場するにつれて内部的に進化し続けます。

Vite の上にフレームワークを構築する

Vite はユーザーが直接使用することもできますが、フレームワークを作成するツールとして優れています。Vite コアはフレームワークに依存しませんが、各 UI フレームワークには洗練されたプラグインがあります。そのJS APIにより、アプリケーションフレームワークの作成者は Vite の機能を使用して、ユーザー向けのカスタマイズされたエクスペリエンスを作成できます。Vite には、通常は高レベルのツールに存在するが、モダンな Web フレームワークを構築する上で基本的なSSR プリミティブのサポートが含まれています。また、Vite プラグインは、フレームワーク間で共有する方法を提供することで全体像を完成させます。Vite は、RubyLaravelなどのバックエンドフレームワークと組み合わせると、非常に適しています。

活発なエコシステム

Vite の進化は、フレームワークとプラグインのメンテナー、ユーザー、および Vite チームの間の協力です。プロジェクトが Vite を採用したら、Vite のコア開発に積極的に参加することをお勧めします。私たちは、vite-ecosystem-ciのようなツールを利用して、各リリースでのリグレッションを最小限に抑えるために、エコシステム内の主要なプロジェクトと密接に連携しています。これにより、選択した PR で Vite を使用して主要なプロジェクトの CI を実行し、エコシステムがリリースにどのように反応するかを明確に把握できます。私たちは、リグレッションがユーザーに影響を与える前に修正し、プロジェクトがリリースされたらすぐに次のバージョンにアップデートできるように努めています。Vite を使用している場合は、Vite の Discordに参加して、プロジェクトにも参加してください。

MITライセンスの下でリリースされています。(ccee3d7c)