我正在尝试将一个大文件导入一个由webpack 2分块并被丑化的react项目中。
我们的代码是分割成块的块我们之一是29MG。我想从卡盘和负载排除大文件分开大的文件。
如何使用Webpack 2将大文件拆分为自己的块?
reactComponent导入一个js文件,该文件具有将页面导出为PDF的代码
reactComponent.js -> import createPDF.js
在createPDF中,我导入一个非常大的文件,并且该文件我想从支票中分离出来。该文件的不是下node_modules。
createPDF.js -> import largeFile.js
entry: {
vendor: [
'react',
'react-dom',
'lodash',
'moment',
'underscore',
'redux-thunk',
'react-bootstrap-table',
'react-bootstrap-daterangepicker',
'react-bootstrap-multiselect',
'react-bootstrap',
'react-translate-component'
],
app: [ './index.js' ]
},
plugins: [
// compresses the JS
new webpack.optimize.UglifyJsPlugin({
exclude: /^2(.*?)\.js$/i, // exclude the very large file
compress: { warnings: false },
sourceMap: true
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: Infinity,
filename: '[name].[hash].js'
}),
],
是一种方式,我可以拆出一个文件? TIA!
答案 0 :(得分:0)
我最终还是这样做了,我不确定这是否是拆分软件包的正确方法,但是对我有用。
我在单独的块中将所需的软件包添加到了供应商列表中。
entry: {
vendor: [
'react',
'react-dom',
'lodash',
'moment',
'underscore',
'redux-thunk',
'react-bootstrap-table',
'react-bootstrap-daterangepicker',
'react-bootstrap-multiselect',
'react-bootstrap',
'react-translate-component',
'./other/fontPDF',
'./other/fontPDF.map',
'./other/exportCaseToPDF',
'pdfmake/build/pdfmake'
],
app: [ './index.js' ]
},
除其他文件夹下的所有内容外,所有软件包都将进入供应商数据块
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks(module, count) {
var context = module.context;
if (context && context.indexOf('public/newPortal/other') >= 0) {
return false;
}
return true;
},
filename: '[name].[hash].js'
}),
我确保仅将其他文件夹下的文件放入新块中
new webpack.optimize.CommonsChunkPlugin({
name: 'other',
minChunks(module, count) {
var context = module.context;
return context && context.indexOf('public/newPortal/other') >= 0;
},
filename: '[name].[hash].js'
}),
我从uglify中排除了大文件,因为它崩溃了...
new webpack.optimize.UglifyJsPlugin({
exclude: /^other(.*?)\.js$/i,
compress: { warnings: false },
sourceMap: true
}),