2015-01-10 10 views
8

मेरे पास मेरे जेएस मॉड्यूल के लिए एक फ़ोल्डर संरचना है। मैं प्रति पृष्ठ एक मॉड्यूल चाहता हूँ। यह एक पेज ऐप नहीं है।मैं वेबपैक के साथ एकाधिक फ़ोल्डर्स कैसे आउटपुट कर सकता हूं?

मैं फ़ोल्डर संरचना में फ़ाइलों को कैसे आउटपुट कर सकता हूं?

जो मैं देख सकता हूं, केवल [name].js आउटपुट करने की संभावना है। यह काम कर सकता है अगर मैं नाम बहुत अनोखा बनाता हूं, या मैं फ़ोल्डर को विभाजक के लिए - बना सकता हूं। इसका मतलब होगा a/b/c.js नाम a-b-c पर अनुवाद करेगा। मुझे वास्तव में यह पसंद नहीं है। मैं require("a/b/c") करने में सक्षम होना चाहता हूं।

जो मैं कह सकता हूं, मैं एक बंडल फ़ाइल का उपयोग नहीं कर सकता क्योंकि require मॉड्यूल के बाहर उपलब्ध नहीं है। यदि यह था, तो मैं प्रत्येक पृष्ठ पर केवल एक बंडल और require("a/b/c") बना सकता था।

यदि ऐसा करने का कोई अच्छा तरीका है कि मुझे इंटरनेट पर नहीं मिल रहा है, तो कृपया मुझे बताएं।

ऐसा लगता है कि मैं r.js का उपयोग करके requ.js के साथ आसानी से ऐसा करने में सक्षम हूं, लेकिन मैं require.js का उपयोग नहीं करना चाहता हूं और कॉमनजेएस मॉड्यूल पसंद करूंगा।

+0

मैं ऐसा कुछ कर रहा हूं लेकिन काफी समान नहीं है। मेरे 'webpack.config.js' में मैंने कई अलग-अलग कॉन्फ़िगरेशन बनाए हैं जिन्हें मैं NODE_ENV पर्यावरण चर के आधार पर स्विच करता हूं जिसे मैंने सेट किया है जब मैं अलग-अलग' npm' स्क्रिप्ट चलाता हूं। उदाहरण के लिए, मेरे 'package.json' में मेरे पास 'build-dev' नामक एक स्क्रिप्ट है जो '" NODE_ENV = development && webpack "सेट करती है। उम्मीद है इससे आपको कुछ विचार मिलेंगे! – Ganonside

उत्तर

1

आप नए फ़ोल्डरों को बनाने के लिए [name] का भी उपयोग कर सकते हैं। इस तरह:

output: { 
    path: __dirname, 
    filename: '[name]/[name].js', 
    chunkFilename: '[name].js', 
    publicPath: '/assets/' 
}, 
10

आप इस तरह स्लैश का उपयोग कर एक प्रवेश बिंदु परिभाषित कर सकते हैं,:

entry: { 
    "main-plugin/js/background":"./src/main-plugin/background" 
} 

और output इस तरह:

output: { 
    path: path.join(__dirname, 'public'), 
    filename: '[name].js' 
}, 

इस सेटअप एक public/main-plugin/js फ़ोल्डर बना देगा और इच्छा इसमें background.js रखें। यह कम से कम Win7x64 पर काम करता है।

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