我使用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/)以分割代碼.... –