序文Vue プロジェクトが開発された後、プロジェクトをパッケージ化してリリースする前に、プロジェクトの最適化という重要な操作が行われます。これはプログラマーにとってもプラスになります。この記事の手順に従って、プロジェクトを最適化する方法を確認してください。 1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか?プロジェクトを実行したところ、ページに入るとすぐにすべての js ファイルと css ファイルが読み込まれることがわかりました。このプロセスは非常に時間がかかります。 2. ルートの遅延読み込みを実装する方法Vue 公式ドキュメント: ルーティングの遅延読み込み コードは次のとおりです(例): { パス: '/login', コンポーネント: () => import('@/views/login/index'), 非表示: true }, 3. ルートの遅延読み込みにおけるマジックコメントコメントに webpackChunkName を指定することで、このファイルの名前をカスタマイズできます。 コードは次のとおりです(例): コンポーネント = () => import(/* webpackChunkName:"login"*/ "../component/Login.vue") 2. パッケージサイズを分析する 1. 需要パッケージ化されたファイル内の各ファイルのサイズを知りたいです。コードを分析して最適化できるようにするためです。 2. パッケージ分析ファイルの生成方法ターミナルで npm run preview -- --report を実行します。このコマンドは、エントリ ポイント main.js から依存関係分析を実行し、各パッケージのサイズを分析します。最後に、生成された dist フォルダーに report.html ファイルが生成されます。これを開くと、プロジェクトで使用されているファイルが占めるスペースを確認できます。 3. Webpack構成ではパッケージ化は除外される1. 需要生成されたパッケージ ファイルから、あまり使用されないパッケージを除外します。 たとえば、上図に示す xsxl.js と element.js は、生成されるファイルから除外できます。 2. 包装を除外するvue.config.js を見つけて、次のように外部項目を追加します。 コードは次のとおりです(例): Webpack を構成する: { //シングルページアプリケーションのタイトルを設定します。ページ名: name, 外部: { /** * 外部オブジェクト属性の解析。 * 基本フォーマット: * 「パッケージ名」: 「プロジェクトで導入された名前」 * */ 'vue': 'vue', '要素-ui': 'ElementUI', 'xlsx': 'XLSX' }, 解決する: { エイリアス: { '@': 解決('src') } } } IV. オンラインリソースの引用1. 需要前の手順を実行した後、生成されたパッケージは大幅に小さくなりました。ただし、これらの依存パッケージがないと、プロジェクトをオンラインで実行することはできません。次に、コードの操作をサポートするために、ネットワーク内のリソースを参照する必要があります。 2. CDN
利点:
3. 実装手順注: 開発環境では、ファイル リソースは引き続きローカルの node_modules から取得できますが、プロジェクトがオンラインの場合にのみ外部リソースを使用する必要があります。この時点では、環境変数を使用して区別することができます。詳細は以下の通りです。 コードは次のとおりです(例): vue.config.js ファイル内: 外部を {} にします cdn = { css: [], js: [] } とします。 const isProduction = process.env.NODE_ENV === 'production' // 本番環境かどうかを判定する if (isProduction) { 外部 = { /** * 外部オブジェクト属性分析: * 「パッケージ名」: 「プロジェクトで導入された名前」 */ 'vue': 'vue', '要素-ui': '要素', 'xlsx': 'XLSX' } cdn = { css: [ 'https://unpkg.com/element-ui/lib/theme-chalk/index.css' // element-ui css スタイルシート], js: [ // 最初に vue が必要です。 'https://unpkg.com/[email protected]/dist/vue.js', // vuejs 'https://unpkg.com/element-ui/lib/index.js', // 要素 UI js 'https://cdn.jsdelivr.net/npm/[email protected]/dist/xlsx.full.min.js', // xlsx ] } } webpack 構成外部構成項目 Webpack を構成する: { //シングルページアプリケーションのタイトルを設定します。ページ名: name, 外部: 外部、 解決する: { エイリアス: { '@': 解決('src') } } } html-webpack-plugin 経由で index.html に挿入されます: vue.config.js ファイルで設定します。 チェーンWebpack(config) { config.plugin('preload').tap(() => [ { rel: 'プリロード', ファイルブラックリスト: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/], 含める: '初期' } ]) //cdn 変数を挿入します (パッケージ化時に実行されます) config.plugin('html').tap(args => { args[0].cdn = cdn // プラグインにcdnを設定する argsを返す }) // 残りは省略します... } public/index.html を見つけて、CDN Config を設定して css と js を順番に挿入します。 ヘッドの内容を次のように変更します。 <ヘッド> <メタ文字セット="utf-8"> <meta http-equiv="X-UA-compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1、ユーザースケーラブル=いいえ"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= webpackConfig.name %></title> <!-- スタイルをインポート --> <% for(var css of htmlWebpackPlugin.options.cdn.css) { %> <link rel="スタイルシート" href="<%=css%>"> <% } %> <!-- JS をインポート --> <% for(var js of htmlWebpackPlugin.options.cdn.js) { %> <script src="<%=js%>"></script> <% } %> </head> 5. console.log をパックして削除する1. 需要プロジェクトがパッケージ化されて起動したら、コード内のすべてのconsole.logを削除します。 2. コードデモンストレーションvue.config.js ファイルで設定します。 コードは次のとおりです(例): チェーンWebpack(config) { config.optimization.minimizer('terser').tap((args) => { args[0].terserOptions.compress.drop_console = true 引数を返す }) } 要約するこれで、Vue プロジェクトの最適化とパッケージ化のフロントエンドに不可欠なボーナス項目に関するこの記事は終了です。Vue プロジェクトの最適化とパッケージ化に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: DockerにTomcatコンテナを追加したときにホームページにアクセスできない問題の解決方法
>>: MySQL 8の新機能である降順インデックスの基礎となる実装の詳細な説明
1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...
簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...
以下は、HTML で正規表現を使用してテーブルをチェックするサンプル コードです。具体的なコードの内...
Linux のデフォルトの ssh リモート ポートは 22 です。デフォルトのポートは、悪意のある...
Word of Mouth に入社して 3 ~ 4 か月が経ちました。仕事の中で一番の収穫は、ビジュ...
CentOS6.7にmysql5.7.18をインストールする 1. /usr/localディレクトリ...
まず、一連の概念を理解しましょう。nginx リバース プロキシとは何でしょうか?リバース プロキシ...
1. ユーザーにルーチン作成権限がある場合は、プロシージャ | 関数を作成できます。 2. ユーザー...
モバイル側では、フレックスレイアウトが非常に便利です。デバイスの幅に応じてコンテナの幅を自動的に調整...
1. docker に nginx をインストールします。 docker に Nginx をインスト...
目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...
VueはRefを使用してレベル間でコンポーネントインスタンスを取得します例の紹介開発プロセスでは、レ...
目次継承ES5 プロトタイプ継承ES6 クラス継承両者の違いES5プロトタイプ継承の内部実装ES6 ...
データシート:列から行へ: max(case when then) を使用max---集計関数は最大...
目次質問解決質問この問題には多くの理由があるようです。私の問題は、パラメータ付きのURLを更新できな...