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 列レイアウトを実装する方法の例 (左側は固定幅、右側は適応幅)

推薦する

nginx+uwsgi で Django プロジェクトを開始するための詳細な手順

Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...

uniapp は日付と時刻の選択機能を実装します

この記事の例では、日付と時刻の選択を実装するための uniapp の具体的なコードを参考までに共有し...

7つの便利なTypeScriptの新機能

目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...

Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...

Pengyou.com モバイル クライアントのダウンロード ページのデザイン共有 (画像とテキスト)

まずは簡単なデータを見てみましょう。 Googleが発表したレポートによると、 ①中国の都市の97%...

preタグを自動的に折り返すためのサンプルコード

pre 要素は、フォーマット済みのテキストを定義します。 pre 要素で囲まれたテキストでは、通常、...

MySQL の日付と時刻関数の概要 (MySQL 5.X)

1. MySQLは現在の日付と時刻を取得する関数1.1 現在の日付 + 時刻 (日付 + 時刻) ...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

Vueは単一ファイルコンポーネントの完全なプロセス記録を実装します

目次序文単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

JS でカルーセル画像を実装するいくつかの方法

カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...

CentOS 7でsambaを使用してフォルダーを共有するための完全な手順

序文Samba は、サーバー プログラムとクライアント プログラムで構成され、Linux システム上...

CSS で垂直方向の中央揃えを行う 7 つの方法の詳細なコード例

レイアウトを編集するとき、通常は水平センタリングと垂直センタリングを使用してデザインします。水平セン...

Linux ディスクとディスク パーティションを理解するための記事

序文Linux システムのすべてのハードウェア デバイスは、ファイルの形式で表現され、使用されます。...

MySQLの起動失敗の解決策

MySQLの起動失敗の解決策MySQLを起動できませんmysqlを停止した後、いくつかの操作(ホスト...