Vueプロジェクトが完了した後にプロジェクトを最適化する方法の例

Vueプロジェクトが完了した後にプロジェクトを最適化する方法の例

1. 開発モードとリリースモードに異なるパッケージエントリポイントを指定する

vue ui によって作成されたプロジェクトは、webpack 構成を非表示にします。src ルート ディレクトリに vue.config.js 構成ファイルを作成できます。構成ファイル内の構成オブジェクトをエクスポートします。

ここに画像の説明を挿入

ここに画像の説明を挿入

2. デフォルトでは、Vue プロジェクトの開発モードとリリース モードは、パッケージ化されたエントリ ファイル (src/main.js) を共有します。 configureWebpackまたはchainWebpackを使用して、webpackパッケージ構成を定義できます。

ここに画像の説明を挿入

main.js ファイルを main-dev.js に変更します。 main.jsをコピーしてmain-prod.jsに変更します。

2. 外部CDNリソースを外部から読み込む

デフォルトでは、インポート構文を通じてインポートされたサードパーティの依存関係パッケージは、最終的に同じファイルにパッケージ化されてマージされるため、パッケージ化が成功した後に 1 つのファイルが大きすぎるという問題が発生します (インポートした CSS スタイルシートも同じファイルにパッケージ化されるため、ファイルが大きすぎます)。

ここに画像の説明を挿入

上記の問題を解決するには、webpack の externals ノードを通じて外部 CDN リソースを設定およびロードすることができます。外部で宣言されたサードパーティの依存パッケージはパッケージ化されず、最終ファイルにマージされません。

①webpackのexternalsノードを設定し、リリースステージで設定する

ここに画像の説明を挿入

外部で宣言されたサードパーティの依存パッケージはパッケージ化されません。プロジェクトは、依存パッケージを使用するときに、ウィンドウ グローバルで対応するオブジェクトを検索します。したがって、CDNからのjsとcssのリソースをindex.htmlファイルに導入して、グローバルに見つけられるようにする必要があります。

public/index.html ファイルのヘッダーに次の CDN リソース参照を追加する必要があります。

具体的な操作手順:
① main-prod.js で、nprogress と quill が参照する css ファイルをコメントアウトする ② index.html の head 領域で、nprogress と quill の js と css スタイルを CDN 経由で読み込む ③ index.html の head 領域で、残りの依存 js を CDN 経由で読み込む

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

対応するオープンソースライブラリはstaticfile CDNから見つけることができます。

ここに画像の説明を挿入

CDN を使用する前のファイル サイズ:

ここに画像の説明を挿入

CDN 使用後のファイル サイズ:

ここに画像の説明を挿入

3. CDNを通じてElementUIパッケージを最適化する

開発段階では、パッケージ サイズを可能な限り削減するために element-ui コンポーネントのオンデマンド読み込みを有効にしましたが、オンデマンドで読み込まれるコンポーネントは依然として大きなファイル サイズを占めています。この時点で、CDN を介して element-ui のコンポーネントを読み込むこともできるため、パッケージ化されたファイルのサイズをさらに削減できます。

具体的な操作手順は以下のとおりです。
① main-prod.js で、element-ui がオンデマンドで読み込まれるようにコードをコメントアウトする ② index.html の head 領域で、CDN 経由で element-ui の js と css スタイルを読み込む

ここに画像の説明を挿入

ここに画像の説明を挿入

完成ファイルサイズ:

ここに画像の説明を挿入

4. ホームページコンテンツのカスタマイズ

①ホームページの内容はパッケージ環境によって異なる場合があります。プラグインを通じてカスタマイズできます。プラグインの構成は次のとおりです。

 // plugin('html') を通じて、HTML プラグインを検索します。 tap() を使用すると、このプラグインの固定構成項目を変更できます。// args を使用すると、現在のプラグインの関連するパラメータを取得できます。
  // args[0]にカスタム属性isprodを追加します。開発フェーズではtrueに割り当てられ、リリースフェーズではfalseに割り当てられます。

ここに画像の説明を挿入

② public/index.htmlホームページでは、isProdの値に基づいてページ構造をどのようにレンダリングするかを決定できます。

ここに画像の説明を挿入

ここに画像の説明を挿入

5. ルートの遅延読み込みを使用する

プロジェクトをパッケージ化してビルドすると、ルートに対応するすべてのコンポーネントが 1 つのファイルにパッケージ化されるため、ファイルが大きくなりすぎてページの読み込みに影響します。異なるルートに対応するコンポーネントを異なるコード ブロックに分割し、ルートにアクセスしたときに対応するコンポーネントをロードできれば、より効率的になります。

ここに画像の説明を挿入

これで、Vue プロジェクトが完了した後に最適化する方法に関するこの記事は終了です。Vue プロジェクトの最適化に関するその他のコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueプロジェクトの最適化とパッケージ化の詳細な説明
  • Vueプロジェクトのフロントエンドを最適化およびパッケージ化するための必須のボーナスアイテム
  • Vueプロジェクト最適化のための実践的な戦略
  • キープアライブデータキャッシュによるVueプロジェクトの最適化方法
  • Vue プロジェクトの最適化のためのページのオンデマンド読み込みに関する簡単な説明 (vue+webpack)
  • Vue プロジェクトの最適化、オンデマンド コンポーネントの読み込みの詳細説明 - webpack require.ensure の使用

<<:  MySQL データベース面接に必須の 3 つのログの紹介

>>:  HTML で 2 列レイアウトを実装する方法の例 (左側は固定幅、右側は適応幅)

推薦する

CSSでプロセスナビゲーション効果を実現する(3つの方法)

CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...

MySQL ストアド プロシージャ関連の権限変更の問題

MySQL データベースを使用すると、他のユーザーが定義したストアド プロシージャを他のユーザーが変...

Linux seqコマンドの使い方

1. コマンドの紹介seq (シーケンス) コマンドは、指定されたステップ サイズに従って、開始番号...

MySQL 4.1/5.0/5.1/5.5/5.6の主な違い

バージョン間でのコマンドの違い: innodb ステータスを表示\G mysql-5.1 エンジン ...

HTML ウェブページにおけるさまざまなフォント形式の詳細

このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...

デザイナーと開発者に役立つ 9 つの超実用的な CSS のヒント

Web デザイナーの頭の中には、仕事に関連する多くの知識が詰まっている必要があります。 CSS は、...

Tomcat プロセスの CPU 使用率が高い場合のトラブルシューティング記録を記録する

この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...

ReactRouterの実装

ReactRouterの実装ReactRouterはReactのコアコンポーネントです。主にReac...

CSS3 で背景ぼかしを実現する 3 つの方法 (要約)

1. 通常の背景ぼかしコード: <スタイル> html, 体 { 幅: 100%; 高...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

Node.js における非同期プログラミングの知識ポイントの詳細な説明

導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...

Minio 軽量オブジェクト ストレージ サービスのインストールとブラウザの使用チュートリアル

目次導入インストール1. マウントするフォルダを作成する2. イメージをプルする3. コンテナを作成...

XHTML の一般的な構造タグ

構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...

JavaScript が Jingdong のカルーセル効果を模倣

この記事では、JD.comのカルーセル効果の表示を実現するためのJavaScriptの具体的なコード...

マークアップ言語 - HTML を学んだ後に何を学ぶべきか?

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...