我使用Fullcalendar & Moment.js来构建使用JSON数据的简单交互式日历。我使用Webpack 2将我的JS捆绑到一个文件中。以下是我的webpack.config.js
文件的简化版本(完整的东西加载的比这更多)。Webpack - 由于FullCalendar造成的巨大的bundle.js文件
var webpack = require('webpack');
var bower_dir = __dirname + '/library/bower_components';
var config = {
resolve: {
alias: {
jquery: bower_dir + '/jquery/src/jquery.js',
vue: bower_dir + '/vue/dist/vue.js',
fullCalendar: bower_dir + '/fullcalendar/dist/fullcalendar.js',
moment: bower_dir + '/moment/moment.js',
}
},
entry: {
app: './library/js/main.js'
},
output: {
path: __dirname + '/dist/library/js',
filename: "bundle.js"
},
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Vue: 'vue'
}),
],
module: {
noParse: /moment.js/
}
};
module.exports = config;
我注意到,在包含这两个文件后,我的包文件大大增加了文件大小。我阅读了与Moment here类似的问题,并实施了将未压缩包的大小从2.13MB减少到1.83MB的更改。
当通过Webpack Visualiser运行webpack --json
输出我注意到,完整的日历仍然是文件大小的巨大份额负责任的,比任何我,包括其他图书馆(23.7%,下一个最高的是jQuery在15.8%,然后Vue.JS在15.4%)。
我想知道如果有人知道任何方式我可以减少这个文件的大小?我目前在生产中运行webpack -p
,将尺寸减小到656kB,但这仍然看起来很多。
您没有使用代码拆分... –
缩小尺寸的唯一方法是在您的日历模块上推出仅包含所需功能的日历模块。或者如果完整的日历有指定的选项 –
请参阅[指南部分](https://webpack.js.org/guides/code-splitting-libraries/)以分割代码.... –