#このチュートリアルの動作環境: Windows7 システム、vue3 バージョン、DELL G3 コンピューター。相違点: 1. Webpack サーバーの起動速度は vite より遅いですが、vite は起動時にパッケージングを必要とせず、モジュールの依存関係を解析してコンパイルする必要がないため、起動速度が非常に速くなります。 2. Vite ホット アップデートは webpack よりも高速です。Vite の HRM の観点から、特定のモジュールのコンテンツが変更された場合、ブラウザーにモジュールを再リクエストさせるだけです。 3. Vite は esbuild を使用して依存関係を事前構築しますが、webpack はノードに基づいています。 4. Vite のエコロジーは webpack ほど良くなく、ローダーとプラグインが十分に豊富ではありません。
vite は非常に人気があり、バージョン 2.0 がリリースされました。vue の作者こちらもおすすめです。
vite の欠点は、現在のエコロジーが
webpack として十分に成熟していないことであると述べました。ただし、できる限りこの欠点を補うことで、現在の
webpack 市場
webpack パッケージ化プロセス
webpackを形成しますパッケージ化の原則
まず、依存関係を段階的に再帰的に特定し、依存関係グラフを構築します
vite 原則{ './app.js': { dependencies: { './test1.js': './test1.js' }, code: '"use strict";\n\nvar _test = _interopRequireDefault(require("./test1.js"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }\n\nconsole.log(test 1);' }, './test1.js': { dependencies: { './test2.js': './test2.js' }, code: '"use strict";\n\nvar _test = _interopRequireDefault(require("./test2.js"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }\n\nconsole.log(\'th is is test1.js \', _test["default"]);' }, './test2.js': { dependencies: {}, code: '"use strict";\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports["default"] = void 0;\n\nfunction test2() {\n console.log(\'this is test2 \');\n}\n\nvar _default = tes t2;\nexports["default"] = _default;' } }ログイン後にコピー
スクリプト タグ タイプを moduleとして宣言する場合
<script type="module" src="/src/main.js"></script>
http://localhost:3000/src/main.js请求main.js文件: // /src/main.js: import { createApp } from 'vue' import App from './App.vue' createApp(App).mount('#app')
例:
GET http://localhost:3000/@modules/vue.js
例:
##Vite
開発サーバーをコールド スタートする場合、パッケージャー ベースのアプローチでは、アプリケーションを提供する前にアプリケーション全体を熱心にクロールしてビルドします。
Vite を改善します。ソース コード カテゴリにより、開発サーバーの起動時間が短縮されます。
# を実装します
Vite は esbuild
事前構築された依存関係を使用します。 Esbuild は Go で書かれており、
webpack の致命的な欠点 3. ホットアップデートは効率が悪い
パッケージャーベースで起動すると、ファイルの編集後、ファイル自体が再構築されます。明らかに、パッケージ全体を再構築すべきではありません。再構築すると、アプリケーションのサイズが大きくなるにつれて更新速度が急激に低下するからです。
一部のパッケージャ開発サーバーは、ファイルが変更されたときにモジュール グラフの一部を非アクティブ化するだけで済むようにメモリ内にビルドを保持します[1]が、全体のリビルドとリロードも必要になります。ページ。これにはコストがかかり、ページを再ロードするとアプリケーションの現在の状態が消去されるため、パッケージャーは動的モジュール ホット リロード (HMR) をサポートしています。これにより、ページの残りの部分に影響を与えることなく、モジュール自体が「ホット リプレース」できるようになります。これにより、開発エクスペリエンスが大幅に向上しますが、実際には、アプリのサイズが大きくなるにつれて、HMR の更新速度さえも大幅に低下することがわかりました。
#vite の改善
。
#wepback 素晴らしい 利点はローダーとプラグインが非常に豊富なことですが、エコロジーになるのは時間の問題だと思います。現在の Vite は当時出たばかりの M1 チップ Mac に似ています。私は非常に楽観的でした。
理由 その理由は、esbuild が CSS とコード分割にあまり適していないためです
Vite が本当に台頭する日は、vue3 に関係しています。 Vite は本番環境で広く使用されるようになり、徐々に誰もが採用する可能性が高くなります。
Vite は起動時にパッケージングを必要としないため、モジュールの依存関係を解析してコンパイルする必要がないため、起動速度が非常に速くなります。速い。ブラウザが必要なモジュールをリクエストすると、モジュールがコンパイルされます。このオンデマンドの動的コンパイル モードにより、コンパイル時間が大幅に短縮されます。プロジェクトが大きくなり、ファイルの数が増えると、Vite の開発上の利点がより明白になります。
vite ホット アップデートは webpack よりも高速ですvite HRM の観点からは、特定のモジュールのコンテンツが変更された場合、モジュールを再リクエストするのではなく、ブラウザにモジュールを再リクエストさせるだけです。 webpack のように、このモジュールのすべての依存関係を再コンパイルします。
vite エコロジーは webpack ほど優れておらず、ローダーとプラグインは十分に豊富ではありません
[関連する推奨事項:
vuejs ビデオ チュートリアル、
Web フロントエンド開発以上がvite と webpack の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。