blog

vue-cli3の最適化

Vue-cli 3.xでは、Webpackは深くカプセル化され、その多くはデフォルトですでに設定されているので、ここではこれらについて深く掘り下げ、違いを説明します。 ここでは2つのプラグイン、それぞ...

Oct 23, 2020 · 3 min. read
シェア

Vue-cli3におけるWebpack設定の最適化

ディレクトリ

はじめに

定量化と分析

  • 1. speed-measure-webpack-plugin
  • 2, webpack-bundle-analyzer

キャッシュ

  • 3番目のビルドは80%のパフォーマンス改善しか達成していません。
  • 3番目のビルドは80%のパフォーマンス向上しか達成していません。

はじめに

Vue-cli 3.xでは、Webpackは深いパッケージを行っており、デフォルトの設定の多くは、これらの深い理解のためにここで、次の説明との違い。

定量化と分析

ここでは、2つのプラグインの主な導入は、それぞれ、定量的なパッケージング時間、およびパッケージング分析です。

3番目のビルドが80%のパフォーマンス向上を達成しました。

このパッケージは、各プラグインとローダーに費やされた時間を測定することができ、ビルドの完了後にそのような情報を表示します:

これにより、最適化する際の比較対象が明確になります。インストール
npm i speed-measure-webpack-plugin -D

次のようにVue-cli 2.xを使用します。

//webpack.config.js
const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
const smp = new SpeedMeasurePlugin();
const config = {
 //...webpack 
}
module.exports = smp.wrap(config);

Vue-cli 3.xでは以下のようになります。

const SpeedMeasurePlugin = require('speed-measure-webpack-plugin')
const smp = new SpeedMeasurePlugin({
 outputFormat: 'human'
})
module.exports = {
 configureWebpack: smp.wrap({
 plugins: []
 })
}

このように設定した後、再度ビルドすると、上のようなメッセージが表示されます。

webpack-bundle-analyzer

これはパッキング後の各ファイルのサイズを分析するもので、バンドルのインストールを分析するのに使います:

npm i webpack-bundle-analyzer -D

Vue-cli 3.xでは、このパッケージをインストールすると、Vue-cli 3.xでビルドされたプロジェクトがすでにnode_modulesに存在するが、プロジェクトのpackage.jsonで参照されていないため、エラーが報告されます。このパッケージをnode_modulesから削除し、再インストールする必要があります。使用してください:

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
 configureWebpack: smp.wrap({
 plugins: [
 // これはすべてのプラグインの最後に置くべきである
 new BundleAnalyzerPlugin()
 ]
 })

ビルドが完了すると、ビルドされたバンドルを表示するビジュアルインターフェイスでサービスが直接開始されます。

キャッシュ

ここではキャッシュのための2つの場所も紹介します。

3番目のビルドは80%のパフォーマンス改善しか達成していません。

パフォーマンス・オーバーヘッドが大きいローダーの前にキャッシュ・ローダーを追加することで、結果をディスクにキャッシュします。

  • インストール
npm install cache-loader -D
  • Vue-cli 2では.x
module.exports = {
 //...
 module: {
 //私のプロジェクトでは、babel-loaderのロードに時間がかかるので、それを`cache-loader`
 rules: [
 {
 test: /\.jsx?$/,
 use: ['cache-loader','babel-loader']
 }
 ]
 }
}

Vue-cli 3.xでは、この設定はデフォルトの設定です。それぞれ、vue-loader、babel-loaderの2つがキャッシュされ、他のはキャッシュしてから設定する必要があります。

3番目のビルドは80%のパフォーマンス向上しか達成していません。

これは、モジュールの中間キャッシュ、効率化を提供するためです。

  • インストール
npm i hard-source-webpack-plugin -D
  • 使用: プラグインで新規。
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
module.exports = {
 configureWebpack: smp.wrap({
 plugins: [
 // モジュールに中間キャッシュを提供し、キャッシュ・パスは次のようになる:ノード_modules/.cache/hard-source
 new HardSourceWebpackPlugin(),
 new BundleAnalyzerPlugin()
 ]
 })
}
上の3つの図はそれぞれ1回目、2回目、3回目のビルドのもので、3回目のビルドで80%のパフォーマンス向上を達成しました。
Read next

Web高模倣FanDeng H5/音楽再生ホバーボール効果

はじめに\nFanDeng H5の効果を見てみましょう。\n\n\n実装は複雑ではありませんが、主に以下のステップを順を追って理解する必要があります:\nステップ1:ボールが一定の範囲内でスライドするように制限します。\nステップ2:スライドを止めると、ボールはエッジ効果を吸います。\nステップ3:エッジを吸った状態のボールをクリックし、それを

Oct 23, 2020 · 5 min read