请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

TreeShaking如何生效

Analyze分析

问题:课程中讲TreeShaking在production环境下默认开启,但TreeShaking在Vue-cli搭建的项目中并没有生效,请问应该如何设置才会生效。
实际我引入的lodash和moment都是import {xxx} from lodash之类,TreeShaking并没有生效。打包后的代码仍然是全部引入
package.json一旦设置 “sideEffects”: false,打包时候控制台就回报错。删除就好了

分析内容

图片描述

报错信息(package.json设置sideEffects: false)

图片描述

splitChunks配置

splitChunks: {
                chunks: 'all',
                minSize: 30000, // 分割文件大小 相当于大于30KB
                maxSize: 0, // 分割限制最小大小 0不限制
                minChunks: 1, // 最小引入模块次数 满足才会被分割
                maxAsyncRequests: 6, // 最多分割? 5
                maxInitialRequests: 4, // 入口文件引入的库进行的代码分割 3
                automaticNameDelimiter: '~',
                name: true,
                cacheGroups: {
                    vendors: {
                        test: /[\\/]node_modules[\\/]/,
                        priority: -8,
                        filename: 'chunks/common.js'
                    },
                    echarts: {
                        test: /[\\/]echarts[\\/]/,
                        priority: -5,
                        filename: 'chunks/echarts.js',
                        reuseExistingChunk: true
                    },
                    elementUi: {
                        test: /[\\/]element-ui[\\/]/,
                        priority: 0,
                        filename: 'chunks/elementUi.js',
                        reuseExistingChunk: true
                    },
                    default: {
                        minChunks: 1,
                        priority: -9,
                        filename: 'js/default.[contenthash].js',
                        reuseExistingChunk: true
                    }
                }
            }

版本信息

webpack 4.30 vue-cli3.x

正在回答 回答被采纳积分+3

1回答

Dell 2019-10-04 16:01:12

你要看一下moment 和loadash 是否支持treeShaking,不是说你配置了就能treeShaking,还要看库本身的写法

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信