Vite と Vue CLI の長所と短所

Vite と Vue CLI の長所と短所

Vue エコシステムには Vite と呼ばれる新しいビルド ツールがあり、Vue CLI よりも 10 ~ 100 倍高速な開発サーバーを備えています。

これは、Vue CLI が時代遅れであることを意味しますか? この記事では、2 つのビルド ツールを比較し、それぞれの長所と短所を説明します。これにより、次のプロジェクトにどちらが適しているかを判断できます。

Vue CLI の概要

ほとんどの Vue 開発者は、Vue CLI が標準のビルド ツールとベスト プラクティス構成を使用して Vue ベースのプロジェクトをすばやくセットアップするために不可欠なツールであることを知っています。

主な機能は次のとおりです。

  • エンジニアリング足場
  • ホットモジュールリロードを備えた開発サーバー
  • プラグインシステム
  • ユーザーインターフェース

この説明の目的上、Vue CLI は Webpack 上に構築されているため、開発サーバーおよびビルド機能とパフォーマンスは Webpack のスーパーセットになることに注意することが重要です。

Viteの概要

Vue CLI と同様に、Vite も基本的なプロジェクト スキャフォールディングと開発サーバーを提供するビルド ツールです。

ただし、Vite は Webpack に基づいているわけではなく、ブラウザのネイティブ ES モジュールを利用する独自の開発サーバーを備えています。このアーキテクチャにより、Vite は Webpack の開発サーバーよりも桁違いに高速になります。 Vite は Rollup を使用して構築されており、より高速です。

Vite はまだテスト段階です。Vite プロジェクトの目的は、Vue CLI のようなオールインワンツールになることではなく、高速な開発サーバーと基本的なビルドツールを提供することに重点を置いているようです。

Vite はなぜこんなに速いのでしょうか?

Vite 開発サーバーは Webpack よりも少なくとも 10 倍高速です。基本的なプロジェクトの場合、開発ビルド/リビルド時間の差は 2.5 秒に対して 250 ミリ秒です。

より大規模なプロジェクトでは、この違いはより顕著になります。 webpack 開発サーバーは、ビルド/リビルド時に 25 ~ 30 秒ほど遅くなることがあり、場合によってはそれよりも遅くなることもあります。同時に、Vite 開発サーバーは同じプロジェクトを一定 250 ミリ秒で処理している可能性があります。

これは明らかに開発体験に大きな変化をもたらす違いですが、Vite はこれをどのように実現するのでしょうか?

Webpack 開発サーバー アーキテクチャ

Webpack の動作は、アプリケーション内のすべての import と require を解析し、実行時にファイル (Sass、TypeScript、SFC など) を変換することで、アプリケーション全体を JavaScript ベースのバンドルに構築します。

これらはすべてサーバー側で行われ、依存関係の数と変更後のビルド/再構築にかかる時間の間にはほぼ直線関係があります。

Vite 開発サーバー アーキテクチャ

Vite にはアプリケーション サーバーはバンドルされていません。代わりに、ブラウザの JavaScript モジュール (比較的新しい機能である ES モジュールとも呼ばれます) に対するネイティブ サポートに依存します。

ブラウザは必要に応じて HTTP 経由で JS モジュールを要求し、実行時に処理します。 Vite 開発サーバーは、あらゆるファイル (Sass、TypeScript、SFC など) をオンデマンドで変換します。

このアーキテクチャは、アプリケーション全体をサーバー側でバンドルすることを回避し、ブラウザの効率的なモジュール処理を活用して、大幅に高速化された開発サーバーを提供します。

ヒント: Vite は、開発中でも必要なモジュールのみをロードするため、アプリケーションをコード分割してツリーシェイクすると高速になります。これは、コード分割がプロダクションバンドルにのみメリットをもたらす Webpack とは異なります。

Viteのデメリット

ご存知のとおり、Vite の主な特徴は、驚くほど高速な開発サーバーです。

この機能がなければ、Vue CLI と比較して追加機能がなく、いくつかの欠点があるため、おそらくこれ以上議論されることはないでしょう。

Vite は JavaScript モジュールを使用するため、依存関係でも JavaScript モジュールを使用するのが最適です。最新の JS パッケージのほとんどはこれを提供していますが、一部の古いパッケージでは CommonJS モジュールのみが提供される場合があります。

Vite は CommonJS を JavaScript モジュールに変換できますが、一部の特殊なケースでは変換できない場合があります。もちろん、JavaScript モジュールをサポートするブラウザも必要です。

Webpack/Vue CLI とは異なり、Vite は古いブラウザや Web コンポーネントなどを対象としたバンドルを作成できません。

また、Vue CLI とは異なり、開発サーバーおよびビルド ツールは異なるシステムであるため、本番環境と開発環境で動作に一貫性がなくなる可能性があります。

Vue CLI と Vite の概要

Vue CLI の利点Vue CLI の欠点
実戦でテストされ、信頼性が高い開発サーバーの速度は依存関係の数に反比例します
Vue 2と互換性あり
あらゆるタイプの依存関係をバンドルできる
プラグインエコシステム
さまざまなターゲット向けに構築可能

Viteの利点Viteのデメリット
開発サーバーはWebpackより10~100倍高速です最新のブラウザ(ES2015+)のみをターゲットにできます
コード分​​割を優先するCommonJSモジュールと完全に互換性がない
ベータ版ではVue 3のみサポートされます
最小限のスキャフォールディングには、Vuex、ルーターなどは含まれません。
さまざまな開発サーバーとビルドツール

Viteの未来

上記の比較は Vite と Vue CLI の現在の状態に焦点を当てていますが、考慮すべき点がいくつかあります。

  • ブラウザでの JavaScript モジュールのサポートが改善されるにつれて、Vite も改善されます。
  • JS エコシステムが追いつくにつれて、より多くのパッケージが JavaScript モジュールをサポートするようになり、Vite が処理できないエッジケースの数が減ります。
  • Vite はまだベータ版であり、機能は変更される可能性があります。
  • Vue CLI は最終的に Vite と統合され、どちらか一方を使用する必要がなくなる可能性があります。

注目すべきは、ブラウザの JavaScript モジュールを活用する開発サーバー プロジェクトは Vite だけではないということです。さらに有名な Snowpack もあり、Vite の開発を圧迫する可能性もあります。時間が教えてくれる

以上がViteとVue CLIのメリットとデメリットの詳しい内容です。ViteとVue CLIの詳細については、123WORDPRESS.COMの他の関連記事もご覧ください。

以下もご興味があるかもしれません:
  • vite2.0+vue3 モバイルプロジェクトの詳細な説明
  • Vue3.0 + TypeScript + Vite初体験の詳しい説明
  • vue3 プロジェクトを素早く構築し、関連機能を紹介する vite+ts の詳細な説明
  • Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します
  • vite を使用して vue3 アプリケーションを構築する方法
  • 古い Vue プロジェクトに Vite サポートを追加する方法

<<:  MySQL のフィールドに一意のインデックスを追加および削除する方法

>>:  MySqlのインストールとログインの詳細な説明

推薦する

Apache Tomcat と IDEA エディターの統合に関する詳細なチュートリアル

1. Apache Tomcat 公式サイトから Tomcat 圧縮パッケージをダウンロードします。...

Echarts 凡例コンポーネントのプロパティとソース コード

凡例コンポーネントは、ECharts でよく使用されるコンポーネントです。シリーズ マーカーの名前を...

Ubuntuにopencvをインストールする正しい方法の詳細な説明

この記事ではUbuntuでC++インターフェースを使用してopencvをインストールする方法について...

商品クエリ機能を実現するJavaScript

この記事の例では、商品検索機能を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Youdaの新しいプチビューの実装

目次序文導入ライブ使いやすいルートスコープマウント要素の指定ライフサイクルコンポーネントグローバル状...

win10 での mysql 8.0.16 winx64 インストールの最新グラフィック チュートリアル

このデータベースをダウンロードするには、多くの時間とトラフィックがかかります。踏み込んだ落とし穴で時...

Vue 初心者ガイド: 環境の構築と開始方法

目次初期ビューVue開発環境の構築Vueインスタンスの作成Vue テンプレート構文Vue データバイ...

JavaScript配列の一般的なメソッドの詳細な説明

目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...

データベースマルチテーブル接続クエリの実装方法の詳細説明

データベースマルチテーブル接続クエリの実装方法の詳細説明結合演算子を使用して複数のテーブルクエリを実...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

大きな太陽の天気アイコンを純粋な CSS で記述する方法の例

効果効果図は以下のとおりです実装のアイデアDivは太陽の長方形の光と影を実現します前の疑似要素は、既...

MySQL 8.0.23 無料インストールバージョンの設定詳細チュートリアル

最初のステップは、MySQL 8.0.23の無料インストールバージョンをダウンロードすることです。 ...

CSS の 4 つのインポート方法と優先順位の簡単な分析

第一に: CSSを導入する4つの方法CSS を導入する方法には、インライン スタイル、埋め込みスタイ...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...