2015-10-09 7 views
12

मैं कई प्रवेश बिंदुओं के साथ निम्न webpack विन्यास ...वेबपैक में, मेरे पास एकाधिक प्रविष्टि बिंदुओं के लिए अलग-अलग आउटपुट निर्देशिका कैसे हो सकती हैं?

module.exports = { 
entry: { 
    somePage: "./scripts/someDir/somePage.js", 
    anotherPage: "./scripts/someDir/someSubDir/anotherPage.js" 
}, 
output: { 
    path: path.resolve(__dirname, 'out'), 
    filename: '[name].js' 
}, 
... 

यह प्रत्येक प्रविष्टि के लिए एक अलग उत्पादन पथ सेट करने के लिए संभव है है?

इसके बजाय का उत्पादन होने का

...

/out/somePage.js /out/anotherPage.js

मैं चाहता हूँ ...

/out/someDir/somePage.js /out/someDir/someSubDir/anotherPage.js

मेरे लिए आदर्श समाधान output.path के लिए होगा एक समारोह को स्वीकार करने के। उदाहरण के लिए ...

... 
output: { 
    path: function (name, hash) { 
     return path.resolve(__dirname, myMapOfFilenamesToDirs[name]); 
    }, 
    filename: '[name].js' 
}, 

क्या किसी को पता है कि यह संभव है या यदि कोई मौजूदा प्लगइन है जो इसे पूरा कर सकता है?

संपादित मैं कई config प्रविष्टियों (बहु संकलक) का उपयोग करने क्योंकि मैं

+0

क्या आपने अपनी प्रविष्टि ऑब्जेक्ट में "someSubDir/anotherPage" ('' '' 'का उपयोग करके किसी अन्य पृष्ठ का नाम बदलने का प्रयास किया था? –

+0

मैंने पथ /resolve में' build/[name]/'के रूप में दूसरा पैरामीटर भेजने का प्रयास किया था, बाहर निकला वेबपैक संकलित नहीं होगा। लेकिन नीचे दिया गया सबसे अच्छा जवाब वास्तव में आकर्षण की तरह काम करता है। –

उत्तर

13

थोड़ा हैकी, लेकिन यह चाल चलनी चाहिए।

module.exports = { 
entry: { 
    "somePage": "./scripts/someDir/somePage.js", 
    "someSubDir/anotherPage": "./scripts/someDir/someSubDir/anotherPage.js" 
}, 
output: { 
    path: path.resolve(__dirname, 'out/someDir'), 
    filename: '[name].js' 
}, 
// Etc. 
} 

आप एक समारोह के लिए पथ निर्धारित नहीं कर सकते, webpack यह तुम्हारे लिए फोन नहीं होगा।

+0

हाँ, यह समझ में आता है। महान समाधान –

+0

हैकी वास्तव में है, लेकिन यह –

+0

काम करता है यह प्रतिभा है! –

2

अब CommonsChunkPlugin साथ प्रवेश बिंदुओं के बीच एक साझा फ़ाइल बनाने के लिए आप एक सरणी लौट सकते हैं सक्षम नहीं होगा नहीं करना चाहती निष्पादित करने के लिए वेबपैक के लिए विन्यास के। मुझे लगता है कि आपको जो चाहिए उसे प्राप्त करने के लिए आउटपुट पथ पर आपको पर्याप्त नियंत्रण मिलेगा।

+2

इस दृष्टिकोण के साथ समस्या यह है कि मैं अब CommonsChunkPlugin या ExtractTextPlugin के साथ साझा स्टाइलशीट का उपयोग करके विभिन्न प्रविष्टि बिंदुओं के बीच साझा बंडल नहीं बना सकता। क्या आप कई कॉन्फ़िगरेशन के साथ इसे पूरा करने के कुछ तरीके से अवगत हैं? –

+0

@ चार्लीमार्टिन आप '[name]/[name] .js' कर सकते हैं लेकिन स्पष्ट रूप से यह नहीं है कि आप क्या चाहते हैं। ऐसा लगता है कि आपको इसे बनाने के लिए वेबपैक पैच करना होगा काम –

+0

आपकी मदद के लिए धन्यवाद –

संबंधित मुद्दे

 संबंधित मुद्दे