मैं webpack 2 करने के लिए नया हूँ और यह आलसी लोड हो रहा है है, अब तक मैं आलसी लोड हो रहा है और कोड बंटवारे के बिना प्रोजेक्ट बनाया हुआ है, लेकिन अब मेरी कोड विभाजित करना चाहते हैं भाग में और रिएक्ट राउटर के साथ सिस्टम आयात का उपयोग करें। मैं बनाया है this लेखWebpack 2 पर ट्री मिलाते हुए और System.import साथ आलसी लोड करने के लिए विन्यास प्रतिक्रिया परियोजना
इस webpack 2 कॉन्फ़िग फ़ाइल के नीचे है के अनुसार रूटर हिस्सा प्रतिक्रिया।
let webpack = require('webpack');
let path = require('path');
let ExtractTextPlugin = require('extract-text-webpack-plugin');
var devFlagPlugin = new webpack.DefinePlugin({
__DEV__: JSON.stringify(JSON.parse(process.env.DEBUG || 'false')),
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
}
});
let extractSCSS = new ExtractTextPlugin('[name].css')
module.exports = {
context: __dirname,
entry: {
bundle: './src/app/app-client.jsx',
styles: './src/app/sass/main.scss',
vendor: [
'react', 'react-dom'
]
},
output: {
filename: '[name].js',
chunkFilename: 'chunk.[id].[chunkhash:8].js',
path: './src/build',
},
resolve: {
extensions: ['.js', '.jsx']
},
devtool: 'cheap-module-source-map',
module : {
rules : [
{
test: /\.scss$/,
loader: extractSCSS.extract(['css-loader','sass-loader'])
},
{
test: /\.jsx?$/,
exclude: [/node_modules/, /libs/],
use: {
loader: "babel-loader",
query: {
presets: ['es2015', 'react', 'stage-2' ],
plugins: [ "transform-runtime" ]
}
}
},
{
test: /\.woff2?$|\.ttf$|\.eot$|\.svg$|\.png|\.jpe?g|\.gif$/,
use: {
loader:'file-loader'
}
}
]
},
plugins: [
extractSCSS,
devFlagPlugin,
new webpack.optimize.CommonsChunkPlugin({
name: 'bundle',
children: true,
async: true,
minChunks: 2
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
children: true,
async: true,
minChunks: 2
})
]
}
लेकिन webpack केवल दो फ़ाइलें, विक्रेता और बंडल, भी बंडल के आकार के बाद मैं अलग प्रतिक्रिया और डोम प्रतिक्रिया कम नहीं है बनाता है।
यह मेरा मार्गों है।
import App from './App.jsx';
function errorLoading(err) {
console.error('Dynamic page loading failed', err);
}
function loadRoute(cb) {
return (module) => cb(null, module.default);
}
export default {
component: App,
childRoutes: [
{
path: 'stock/info/:symbol(/:tab)',
getComponent(location, cb) {
System.import('./StockPage')
.then(loadRoute(cb))
.catch(errorLoading);
}
},
{
path: '*',
getComponent(location, cb) {
System.import('./NoMatch')
.then(loadRoute(cb))
.catch(errorLoading);
}
}
]
};
अपने आवेदन चलाता है, लेकिन आलसी लोड हो रहा है निश्चित रूप से काम नहीं करेगा, क्योंकि मैं System.import
भीतर मेरे मॉड्यूल का कोई हिस्सा नहीं है।
कृपया सहायता से आप अपने आवेदन के प्रदर्शन के लिए सही webpack config बनाने के लिए! अग्रिम धन्यवाद और क्षमा करें अगर कुछ बकवास है, क्योंकि मैं वेबपैक पर नया हूं।
यह webpack आप 'के लिए 2. – hazardous
असल webpack में गतिशील आयात का उपयोग करने के लिए सही रास्ता है घ की जरूरत [कोलाहल-प्लगइन-डायनामिक-आयात webpack] (https://github.com/airbnb/babel-plugin-dynamic-import-webpack) कोलाहल-प्लगइन-syntax- के बजाय,) आयात को बदलने के लिए (बयान गतिशील आयात। बेबेल-प्लगइन-सिंटैक्स-गतिशील-आयात केवल बैबेल को गतिशील आयातों को पार्स करने की अनुमति देता है, लेकिन उन्हें परिवर्तित नहीं करता है। – vsjn3290ckjnaoij2jikndckjb
@ismay जो वेबपैक वी 1 के लिए सच है लेकिन Webpack2 अब ES6 आयात और आयात() फ़ंक्शन को मूल रूप से समर्थन देता है। – DanielD