序文Vue プロジェクトが開発された後、プロジェクトをパッケージ化してリリースする前に、プロジェクトの最適化という重要な操作が行われます。これはプログラマーにとってもプラスになります。この記事の手順に従って、プロジェクトを最適化する方法を確認してください。 1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか?プロジェクトを実行したところ、ページに入るとすぐにすべての js ファイルと css ファイルが読み込まれることがわかりました。このプロセスは非常に時間がかかります。 ページを開いたときに、該当ページの対応する 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 CDN の正式名称は「Content Delivery Network」で、中国語ではコンテンツ配信ネットワークと呼ばれます。アクセス速度を向上させるためにこれを使用しており、一部の静的リソース(css、.js、画像、ビデオ)をサードパーティの 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') } } } コードをコピー
チェーン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を返す }) // 残りは省略します... } コードをコピー
<ヘッド> <メタ文字セット="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 引数を返す }) } 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CSS ブラウザ互換性の問題に対する 4 つの解決策
>>: Zabbixを介してデータベース接続情報といくつかの拡張機能をすばやく取得します
目次クラスタクラスターの詳細クラスター内のイベントクラスター内のメソッドクラスター内の属性クラスター...
1. Mariaソースを追加する vi /etc/yum.repos.d/MariaDB.repo...
目次1. SQL言語の基本機能の紹介2. データ定義言語の目的3. データベースの作成と破棄4. デ...
MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...
1. まずmysqld.exeプロセスを停止します2. cmd を開き、mysql の bin ディ...
目次1. 解析する1.1 傍受のルール1.2 傍受プロセス部分1.3 パーサーの概要2. 最適化する...
CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...
この記事では、要素をドラッグするときにプレビューを追加する小さなデモを紹介します。効果は次のとおりで...
一般的に、テーブルを使用する場合は、常に <table border="1"...
歴史ルート履歴モードとは、HTML5 の履歴 API を使用してクライアント側ルーティングを実装する...
目次1. 効果2. メインコード1. 効果機能: インターフェイスから取得したデータを使用してオプシ...
--1. mysql用の新しいグループとユーザーを作成する # ユーザー追加 -M -s /sbin...
MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...
node-media-server を使用するプロセスの一部を記録します。この記事の環境はWindo...
CSS 3 アニメーションの例 - タブの背景切り替えの動的効果、具体的なコードは次のとおりです。 ...