1 ポイント 投稿者 GN⁺ 3 시간 전 | 1件のコメント | WhatsAppで共有
  • プロジェクトごとに別々に組み立てていたWeb開発ツールの負担を減らすため、Vite+ はランタイム、パッケージマネージャー、ビルド・テスト・検査ツールを1つのエントリーポイントにまとめた
  • vp dev, vp check, vp test, vp build, vp pack, vp runVite 8, Vitest, Rolldown, tsdown, Oxlint, Oxfmt と連携し、一貫したコマンド体系を提供する
  • アルファ以降、12以上のバージョン500以上のPRを経て、キャッシュ、マイグレーション、組織テンプレート、企業ネットワーク対応、クロスプラットフォーム安定性が改善された
  • 公開リポジトリベースで 1,300以上vite-plus に依存しており、Dify、critical、BlockNote、vinext、îles、Inkline、npmx などのプロジェクトがすでに利用中
  • まだ1.0前段階のため、リモートキャッシュ、GitLab CI/CD対応、フレームワーク・プラグイン互換性、マイグレーション、配布チャネルと診断の改善が残っている

Vite+ が提供する統合ツールチェーン

  • Vite+ はWeb開発のための統合ツールチェーンとしてベータ公開された
  • 1つのエントリーポイントでランタイムとパッケージマネージャーを管理し、複数のフロントエンドツールを検証済みスタックとしてまとめて提供する
  • MITライセンスの完全なオープンソースで、特定のフレームワークに依存しない
  • CLI、ライブラリ、Webアプリなど、さまざまなWebプロジェクトで利用できる
  • 新規プロジェクトは vp create、既存プロジェクトは vp migrate で始める

同じコマンドで開発・検査・ビルドを実行

  • Vite+ は、リポジトリごとに異なるツールの組み合わせやコマンドを覚える代わりに、同じコマンド体系を使えるよう設計されている
  • 主なコマンドは次のとおり
    • vp dev: Vite 8ベースでホットモジュールリプレースメントを含む開発サーバーを起動する
    • vp check: Oxfmt によるフォーマット、Oxlint によるlint、型チェックをまとめて実行する
    • vp test: Vitest ベースの単体テストを実行する
    • vp build: Vite 8ベースで本番ビルドを実行する
    • vp pack: tsdown ベースでライブラリをバンドルし、ベストプラクティスを含む
    • vp run: 内蔵のモノレポ認識タスクランナーで npm スクリプトやタスクを実行し、インテリジェントキャッシュを利用する
  • チームやコードベースが大きくなるほど、次の利点が大きくなる
    • ツールのバージョンが揃う
    • 設定共有がしやすくなる
    • 新規コントリビューターのセットアップ工程が減る
    • CI がローカル開発と同じコマンドを実行する
  • ツールチェーンを毎回自分で組み立てたくない開発者や、プロジェクト全体で一貫した設定を求めるチーム向けに設計されている
  • Vite+ は Viteエコシステム を置き換えるものではない
    • Vite プラグインは引き続き Vite プラグインのまま
    • プロジェクトは内部的に好みのパッケージマネージャーを引き続き利用できる
    • Vite+ は、これらの要素が1つのツールチェーンのように動作するための統合レイヤーを提供する

アルファ以降、ベータまでの変化

  • Vite+ アルファ以降、実プロジェクトでのテストを経て 12以上のバージョン がリリースされ、500以上のPR がマージされた
  • 主な改善点は次のとおり
    • より賢いキャッシュ: vp run自動データトラッキング と Vite が報告するメタデータを組み合わせ、入力・出力・環境変数を手動で列挙しなくてもビルドキャッシュが正しく機能する
    • マイグレーション改善: vp migrate がさまざまなアプリ設定を処理し、エージェント向けのマイグレーションプロンプトも提供する
    • エンタープライズ機能: 組織テンプレート でチーム間の設定を標準化し、プロキシおよびカスタムCA対応HTTP により企業プロキシやファイアウォールの背後でも vp を実行できる
    • クロスプラットフォーム: 主要OSやシェルでより確実に動作するよう vp が強化された
    • 洗練と改善: vite-plus に 180以上の修正と改善が反映された
  • 詳細な変更履歴は Vite+ リリース記録 で確認できる

ともに進化した基盤ツール群

実際の導入事例

  • vite-plus に依存する公開リポジトリは 1,300以上 あり、非公開プロジェクトやグローバルCLIインストールは含まれない
  • さまざまな種類のプロジェクトで Vite+ が使われている
    • Dify: LLM アプリ構築向けのオープンソースプラットフォーム
    • critical: Addy Osmani によるフレームワーク非依存の critical-path CSS ツール
    • BlockNote: React 向けのブロックベース Notion スタイルのリッチテキストエディタ
    • vinext: Vite ベースの Next.js 互換ドロップインフレームワーク
    • zerobyte: TanStack と React で作られたセルフホストユーザー向けバックアップ自動化
    • îles: Vue 向けの部分ハイドレーション islands サイトジェネレーター
    • agentsview: Svelte で作られた、コーディングエージェント向けローカルファーストのセッション検索・分析ツール
    • Inkline: Vue, React, Svelte, Angular, Solid, Qwik, Astro をサポートするUIコンポーネントライブラリ
    • npmx: Nuxt ベースのオープンソース npm レジストリブラウザー
  • npmx の Daniel Roe は、Vite+ によって開発体験を高速に保てるだけでなく、CI やレビュー工程も高速化されると述べている

1.0 までに残る課題

  • Vite+ は安定しているが、まだ完成段階ではなく、統合ツールチェーンに必要な機能要件を満たすなら導入を勧めている
  • 1.0 までに注力する項目は次のとおり
    • vp run である Vite Task 向け リモートキャッシュ の実装
    • GitLab CI/CD 向け setup-vp の導入
    • Vite フレームワークおよびプラグイン全般の互換性改善
    • より多くのマイグレーション対象のサポート
    • 公式 Homebrew formula など配布チャネルの追加
    • ドキュメントと診断のさらなる明確化
  • 1.0 リリース前に残る互換性ギャップを減らすため、コミュニティからのフィードバックを優先している

インストールとマイグレーション

  • グローバル vp コマンドは macOS/Linux では次のコマンドでインストールする
curl -fsSL https://vite.plus | bash
  • Windows では次の PowerShell コマンドを使う
irm https://vite.plus/ps1 | iex
  • 新規プロジェクトの作成には次のコマンドを使う
vp create
  • 既存の Vite プロジェクトで Vite+ を試すには次のコマンドを使う
vp migrate

1件のコメント

 
GN⁺ 3 시간 전
Hacker Newsの意見
  • Vite は本当に気に入っているけれど、ほかのツールが何なのかはまったく分からない。
    ちょっと頭を下げて仕事している間に、フロントエンドのツール体系が急に進化していて、退屈だけどちゃんと動くスタックへ向かう流れがあるのか気になっている。

    • 含まれているツールは実際かなり優秀。vitest は非常に高速なテストランナーで、jest や Node 組み込みのテストランナーなどいろいろ使ったあとでも気に入っている。
      oxlint は eslint の代替で、設定ファイル形式と互換性があり、JavaScript で書かれていないので非常に速い。biome も使ったが、oxlint のほうがルールが多く eslint 互換性も高かった。
      oxfmt は prettier の代替で、JavaScript で書かれていないのでより高速。rolldown は rollup の代替で互換性がありつつ、はるかに速い。新規プロジェクトではすでにこうしたツールを主に使っている。
    • ほかのツールはテスト、バンドル、lint、フォーマット用。
      以前は別々のオープンソースプロジェクトのツールを、それぞれ異なる設定や更新サイクルで使わなければならなかったが、今ではひとつのシンプルなツールチェーンとして扱える。
      Vite+ は事実上「退屈だけどちゃんと動く」スタックで、性能も高く、設定も少なくて済む。
    • その通り、まさにその方向。
      eslint → oxlint、prettier → oxfmt のように Rust で書き直して高速化し、webpack → Vite はすでに十分広く使われているので受け入れる流れ。
      rolldown → tsdown は TypeScript 対応を追加し、jest → vitest は Vite と相性がいい。
      この10年で定着した慣習を取り込みつつ、TypeScript 対応Rust ベースの性能、相互運用性をひとつにまとめる形だ。
    • Vite を試そうとしたが、esbuild に対して大きな利点を感じられず離れてしまった。
      Deno も使っているが、どんな点が便利なのか気になる。
    • これが最近台頭してきた最新の退屈だけどちゃんと動くスタックだ。
  • Vite、Vitest、Oxlint、Oxfmt が好きで、新しいプロジェクトの大半でまずこちらを見る。
    彼らが十分な資金を確保して、少なくとも今後10年は開発を続けられるといいと思う。
    古いプロジェクトを開くと Gulp、Grunt、webpack、そのほかバラバラのツールが入り混じっているより、はるかにまし。そういうプロジェクトのひとつも新しいスタックへ移行した。

    • VoidZero は Cloudflare に買収されたと理解しているので、資金は問題ではなさそう。
      焦点は、Cloudflare が彼らにVite と Vite+ の機能を作り続けさせるかどうかだ。Cloudflare だけでなく、あらゆるクラウドプラットフォームに利益をもたらす機能だから。
      https://blog.cloudflare.com/voidzero-joins-cloudflare/
    • Vite、ESLint、Prettier、TypeScript、React をすべて自然に噛み合わせるのは厄介なことがある。
      とくにサーバーサイドレンダリングを含むフルスタックだとなおさらで、フロントエンドだけを見て TypeScript を外せばかなり簡単になる。
      より複雑なケースで Vite+ が役立つかどうかは見守る必要がある。
  • このプロジェクトはもっと良い名前を探すべきだと思う。
    実際には Vite を良くしたものというより別のツールの束なので、かなり紛らわしい。
    当時の Void Zero は Vite ブランドで収益化しようとしていたのかもしれないが、いまは Cloudflare に買収されたのでその必要もなくなった。

    • Vite にいろいろ追加されたものなのだから、「plus」には複数の意味を持たせられる。
  • Vite、Vitest、Rolldown、tsdown、Oxlint、Oxfmt を非常に満足して使っている。
    ハードフォークしたパッケージも多く、もう戻りたくない。全部ただうまく動く。
    名前で混乱するなら、まず Oxlint https://oxc.rs/docs/guide/usage/linter と Rolldown https://rolldown.rs/ を見ればいい。
    この6か月で導入したが、tsconfig はほんの少ししか変更していない。
    普段は antd6、echart、レンダリングエンジン、地理空間ライブラリのようなものでなければ、新しいパッケージを持ってきて Claude で整理し、厳格で統一された型体系に合わせたうえで、Vite、tsconfig、oxlint の好みに合わせている。
    その結果、ライブラリの肥大化サプライチェーン攻撃の問題を追い続ける必要が減り、読んで直しやすくなった。

  • Vite は 2022〜2026 年の4年間でメジャーバージョンが5回上がった: 3 → 4 → 5 → 6 → 7 → 8
    そのたびに破壊的変更があり、開発者がマイグレーションしなければならなかったが、多すぎる。バージョン 3 の時点と比べて劇的によくなったわけでもないのに。
    こうしたレベルの不要な変更と継続的な混乱を、残りの開発ツールチェーンにまで持ち込みたくはない。
    Vite+ が結局のところ既存ツールを抽象化されたコマンドラインインターフェースで包むだけなら、望む動作を作るためにさらに多くの間接層をかき分けることになるので、まだ楽観はしていない。

    • 主要なマイグレーションはすべて追ったが、かなりスムーズだった。
      大きな問題は覚えておらず、毎回だいたいそれだけの価値はあった。
    • 自分でもマイグレーションしたが、ひどいものではなかった。
      破壊的変更はいくつかあったが比較的局所的で、このバージョン間での速度と改善はかなり大きかった。
    • うちもそのメジャーバージョンのマイグレーションは全部やったが、壊れたり大きな churn はなかった。
      どんな破壊があったのか気になる。
    • バージョン 3 と比べてあまり良くなっていないというのは同意しがたい。
      サーバーサイドレンダリング関連の機能追加は大きな改善だった。
    • 4 から 8 へ一気に上げたが、設定を5行変えるだけで済んだ。
      存在しない問題について延々と文句を言うのはやめてほしい。そもそも本当にこれらのツールを使っているのかすら疑わしい。
  • フロントエンド、あるいは JavaScript エコシステムを追いかけるのは本当に大変。
    Laravel で仕事をしていた頃が懐かしいし、Laravel を使う仕事のほうがもっと高給であってほしい

    • Laravel Livewire と Alpine.js で働きたいとは思わないはず。
      それでも追い続けなければならず、結果にもあまり満足できないかもしれない
    • 実のところ、必ずしも追いかける必要はない。
      以前使っていたものもまだ動く
    • 共感する。うちでも Laravel モノリスを Python Lambda に少しずつ置き換えているところ。
      Laravel 6 の時代が本当に懐かしい
  • uv でうまくいったやり方なのだから、有能なチームなら JavaScript でも同じことができそう

    • コメントで uv の話がこれしかないのは意外。
      私にとってはかなり明確な比較対象で、JavaScript エコシステムにとってもとても歓迎すべき進展に感じる。
      uv のおかげで Python で作業するのがまた楽しくなった
  • Vite のように Node ビルドにも使えるのか、それともブラウザ専用なのか気になる

    • Vite を使うので、制約も Vite と同じ。
      ただし vite-plugin-node を使って NestJS サーバーで Vite を問題なく使っている。
      例は https://github.com/leosuncin/nest-vite-example/blob/master/v... を参照
    • Node を対象にするときによく動く、私の決まり文句のような設定はこちら: https://pastebin.com/ynz4B5X0
      基本的には自分をライブラリであるかのように見せればよい
    • CLI にも Vite+ を使っている。
      この場合 Vite を開発サーバーとしては使わないが、lintフォーマット、タスク実行、キャッシュはそのままある
    • 誰かが Node コードのバンドルを提案するたびに、いつもユースケースが気になる。
      利点は何だろう? SEA で難読化したい用途なのか?
  • これにもサブスクリプションが付いているのか気になる。
    名前に「+」が付いていると警戒してしまい、当然サブスクリプション付きだと思ってしまう。
    見たところ、そうではなさそう

    • 私も最初にそう思った。
      今では「$name+」は「$name の サブスクリプションサービス」という意味として強く刷り込まれている
    • 「MIT ライセンスの完全なオープンソース」と書かれている
    • もともとはそういう構想だったのかもしれないが、その後 acqui-hire されたようだ
    • 名前は少し気になる
  • Astro と一緒に使えるのか気になる