أنا جديد في حزمة الويب. لا يمكنني معرفة سبب إنشاء حزمة ثقيلة مثل هذه. حتى بالنسبة لأصغر الأمثلة الخاصة بك ، فإن المهام - مع التراجع - تبلغ 1.9 ميجا بايت! بالنسبة للأمثلة الأخرى الأكثر تعقيدًا ، يبلغ حجمها حوالي 2.5 ميغا بايت. بالتأكيد هناك شيء خاطئ في التكوين.
بعمل عظيم من جانب الطريق :)
لا يوجد شيء خاطئ بحد ذاته ، فالأمثلة ليست مهيأة للإنتاج. من غير المحتمل أن نقوم بهذا هنا لتجنب عبء الصيانة - يرجى الرجوع إلى قوالب Webpack المعيارية الكاملة للحصول على أمثلة لتكوينات الإنتاج.
على الأقل سترغب في القيام بذلك في الإنتاج:
devtool
من 'eval'
إلى 'source-map'
webpack.DefinePlugin
لتعيين process.env.NODE_ENV
إلى 'production'
webpack.optimize.UglifyJsPlugin
للتقليلNODE_ENV=production
لذا .babelrc
لا يُفعِّل react-transform
قد يبدو تكوين إنتاج Webpack النموذجي كما يلي:
var path = require('path');
var webpack = require('webpack');
module.exports = {
devtool: 'source-map',
entry: [
'./src/index'
],
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/static/'
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production')
}
}),
new webpack.optimize.UglifyJsPlugin({
compressor: {
warnings: false
}
})
],
module: {
loaders: [{
test: /\.js$/,
loaders: ['babel'],
include: path.join(__dirname, 'src')
}]
}
};
فيما يلي نموذج معياري يتضمن وضع الإنتاج إذا كنت مهتمًا.
يجب أن تكون أفضل طريقة هي AsyncRoute. يجب علينا تجميع القالب / css / js للمكون معًا لتجنب الطلبات المتعددة ، ولكن تحميله عند الطلب.
سيؤدي وجود devtool
كـ inline-source-map
بدلاً من source-map
إلى زيادة حجم ملف الإخراج عن طريق وضع خريطة المصدر (مفاجأة) مضمنة. من الواضح ، لكني تجاهلت هذا الأمر واستغرق الأمر ساعة لمعرفة ذلك ، لذا سأضعه هنا كمرجع عام في المستقبل
التعليق الأكثر فائدة
لا يوجد شيء خاطئ بحد ذاته ، فالأمثلة ليست مهيأة للإنتاج. من غير المحتمل أن نقوم بهذا هنا لتجنب عبء الصيانة - يرجى الرجوع إلى قوالب Webpack المعيارية الكاملة للحصول على أمثلة لتكوينات الإنتاج.
على الأقل سترغب في القيام بذلك في الإنتاج:
devtool
من'eval'
إلى'source-map'
webpack.DefinePlugin
لتعيينprocess.env.NODE_ENV
إلى'production'
webpack.optimize.UglifyJsPlugin
للتقليلNODE_ENV=production
لذا.babelrc
لا يُفعِّلreact-transform
قد يبدو تكوين إنتاج Webpack النموذجي كما يلي:
فيما يلي نموذج معياري يتضمن وضع الإنتاج إذا كنت مهتمًا.