react antd webpack 按需加载打包后还是很大?

根据官方推荐的配置:`{


            test: /\.(js|jsx)$/,

            exclude: /node_modules/,

            include: path.join(__dirname, './app'),

            loader: 'babel-loader',

            query: {

                cacheDirectory: true,

                plugins: ['transform-runtime',['import', [{ libraryName: 'antd', style: "css" }]]],

                presets:['es2015','react','stage-0']

            }

        }`

        然后各个路由按需加载。如图:

https://img.mukewang.com/5c4d51690001580f08000015.jpg        


这是还没开启UglifyJsPlugin压缩。有1.5M。在page_a中这样引入antd:


import { Form, Table, Input, Button,Breadcrumb,Badge,Dropdown,Menu,Icon } from 'antd';

开启UglifyJsPlugin压缩后如下图:

https://img1.mukewang.com/5c4d516c00011f4908000015.jpg


还是有900多k。请问在后端gzip压缩之前还能进一步缩小体积么?


ITMISS
浏览 1305回答 1
1回答

猛跑小猪

应该是 你 多个文件 依赖了相同的包 导致每一个文件都打包了多个重复的文件吧,应该用 CommonsChunkPlugin 插件 就可以解决了            new webpack.optimize.CommonsChunkPlugin({                name: "app",                async: "common-in-lazy",                children: true,                minChunks: ({ resource } = {}) => (                    resource &&                    resource.includes('node_modules') &&                    /axios/.test(resource)                )            }),            new webpack.optimize.CommonsChunkPlugin({                name: "app",                children: true,                async: 'used-twice',                minChunks: (module, count) => (                    count >= 2                ),            }),            new webpack.optimize.CommonsChunkPlugin({                name: 'app',                filename: "js/common.[chunkhash:8].js",                minChunks: ({ resource }) => (                    resource &&                    resource.indexOf('node_modules') >= 0 &&                    resource.match(/\.js$/)                )            }),这个是知乎的链接
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript