2016-05-19 15 views
0

React、FullCalendar、JQuery、Material UIをFormsy-material-uiと組み合わせて使用​​した小さなアプリでした。Material UI Webpack Build

このアプリは、フルカレンダーにイベントを表示しています。

このイベントは、カレンダーのある場所をクリックすると作成され、FormsySelect、FormsyDatepicker、FormsyTextfieldなどのコンポーネントを使用してフォーム内のフォームをレンダリングします。

webpackでビルドを行うと、588kbのバンドルが生成されます。

途中で別のコンポーネントに読み込まれるダイアログフォーム。

私のダイアログコンポーネントをレンダリングしないと、バンドルのサイズは220kbです。

マテリアルUIはこれに責任がありますか?

を編集します。ダイアログコンポーネントで行ったインポートはそのままです。

import React, { Component, PropTypes } from 'react'; 
import getMuiTheme from 'material-ui/styles/getMuiTheme'; 
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; 
import Formsy from 'formsy-react'; 
import RaisedButton from 'material-ui/RaisedButton'; 
import MenuItem from 'material-ui/MenuItem'; 
import { FormsySelect, FormsyText, FormsyTime, FormsyDate, FormsyCheckbox } from 'formsy-material-ui/lib'; 
import Dialog from 'material-ui/Dialog'; 
import { mouseTrap } from 'react-mousetrap'; 
+0

どのようにインポートしていますか? –

+0

私も同様の状況にあります。私たちのアプリは、いくつかのマテリアルUIコンポーネントを使用し、webpack + UglifyPluginを使用してビルドした後、サイズは約700kbです。 webpackの設定を更新して、material-uiパッケージのみを含むvendor.min.jsファイルを生成すると、vendor.min.jsは約650kbです。私はそれが多すぎると思う。 – EricSonaron

答えて

1

この問題を解決する適切な方法は、まずバンドルを分析することです。それに対してsource-map-explorerを実行してみましょう:

$ sudo npm install -g source-map-explorer 
$ source-map-explorer bundle.min.js 
$ source-map-explorer bundle.min.js bundle.min.js.map 

このスペースは、あなた縮小さバンドルで使用されているかの可視化を開きます。

もう1ついいツールはwebpack-bundle-analyzerです。

+0

あなたの答えは100%正しいですが、 そのリンクが別のものまたはメインサイトに移動、変更、マージされた場合は無用になります ** **: - (**したがって、あなたの答えを編集し、 あなたの答えにリンクから関連するステップをコピーすることで、 あなたの答えはこのサイトの生存期間の100%を保証します!**; - )**あなたはいつでも 素材の回答の下に... –