如何减少索环中的webpack包大小?

时间:2016-09-15 19:05:37

标签: javascript reactjs webpack bundling-and-minification grommet

我正在使用索环。我按照getting started guide进行了第一次申请。 为生产而生成的webpack包是一个超过1.7 MB的单个JavaScript文件,我没有在入门示例中添加任何内容。

是否有办法减少此捆绑文件的大小或将其拆分为多个文件?

2 个答案:

答案 0 :(得分:3)

更新

我确定了两个储蓄来源。一个小的,与Grommet直接相关,一个较大且与供应商有关。

Savings
219Kb   Remove use of Card   (my only use of remark-parse and friends)
3.13MB  Remove use of webpack.optimize.CommonsChunkPlugin†

†的WebPack

// vendor: [ 'grommet'...]
// ...
// new webpack.optimize.CommonsChunkPlugin({
//   name: 'vendor',
//   children: true,
//   minChunks: 2,
//   async: true,
// }),

JSX

// import Card from 'grommet/components/Card'; ... <Card />
import Box from 'grommet/components/Box'; ... <Box />

====

Webpack 2.3.1&#39;供应商&#39;似乎拉进了一切。 我已经很少地将一些Grommet组件导入React。

在webpack配置中指定vendor: [ 'grommet'...]会导致捆绑包大小为&gt; 3MB。

vendor.c119b2da32ae94938692.js 3.15 MB 1 [emitted] [big] vendor

从该阵列中删除索环导致大小为429K。

vendor.0619a5794ef890b54543.js 429 kB 2 [emitted] [big] vendor

其他捆绑尺寸没有变化。

答案 1 :(得分:0)

您可能正在导入这样的Grommet:

import Grommet from 'grommet';

var Grommet =  require('grommet');

import { Box, Chart } from 'grommet/components';

这将加载整个Grommet库(包括~300 +控制图标),然后将其过滤到您正在使用的任何内容。

您可以通过单独导入每个组件来改进它,如:

import Box from 'grommet/components/Box';