LoginSignup
4
3

More than 5 years have passed since last update.

lodash のファイルサイズを lodash-webpack-plugin と babel-plugin-lodash を使って削減する

Posted at

概要

react で SPA を作成していたのですが、webpack-bundle-analyzer をみると、lodash の占める割合が大きかったので、少しでも減らせるような試みとして、
lodash-webpack-pluginbabel-plugin-lodashを使って、 ファイルサイズを削減しました。

利用した主なパッケージのバージョン

"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-lodash": "^3.3.4",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"lodash-webpack-plugin": "^0.11.5",
"webpack": "^4.20.2",
"webpack-bundle-analyzer": "^3.0.2",
"webpack-cli": "^3.1.2",

使用方法

まずはパッケージを追加

yarn add --dev lodash-webpack-plugin babel-plugin-lodash

.babelrcbabel-plugin-lodashを追加

"plugins": ["lodash"]

webpack.config.jslodash-webpack-pluginの設定を追加

const webpack = require('webpack');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
  .BundleAnalyzerPlugin;
const LodashModuleReplacementPlugin = require('lodash-webpack-plugin'); //追加

module.exports = {
  //省略
plugins: [
    new BundleAnalyzerPlugin(),
    new LodashModuleReplacementPlugin({
      collections: true,
      chaining: true
    }) //追加
  ]

lodash-webpack-pluginをデフォルト設定で使うと使えない機能がでてくるので、

ここではcollections:Collection method(orderByとか使ってたので)
chainig:メソッドチェーンを使っていたので

その他の設定に関しては、ここを参照

後は、webpack -pなどして動作確認を行ってください。

まとめ

対応を行ったことでファイルサイズは削減できたのですが、細かい値は記録してませんでした。(計測を忘れて作業するのは残念すぎました。)

lodash-webpack-pluginbabel-plugin-lodashを使えば、簡単にlodashのファイルサイズが削減できるので便利

参考リンク

babel-plugin-lodashで依存パッケージから未使用のコードを削除する

[webpack] バンドルされるLodashのサイズを減らす方法

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3