2016-09-13 14 views
6

यह ठीक काम करता है जब मैं मैन्युअल रूप से require का उपयोग कर फ़ाइल का अनुरोध करता हूं, हालांकि पल मैं एक ही अनुरोध का उपयोग करता हूं, लेकिन स्ट्रिंग को बदलता हूं ताकि यह चर के साथ विभाजित हो जाए।वेबपैक के साथ आवश्यक गतिशील फ़ाइल पथ?

यह महान काम करता है:

module.exports = (function() { 
    var $svg = require('svg-inline!../../assets/svgs/global/connected.svg'); 
    console.log($svg); 
}()); 

लेकिन अगर मैं ऐसा करने के लिए किया गया था:

module.exports = (function() { 
    var $path = '../../assets/svgs/global/'; 
    var $svg = require('svg-inline!'+$path+'connected.svg'); 
    console.log($svg); 
}()); 

यह विफल रहता है और सांत्वना के अंदर का कहना है:

Uncaught Error: Cannot find module "."

मुझे लगता है कि मेरी सवाल यह है कि आप यहाँ जैसे तारों को कैसे जोड़ सकते हैं?

+0

https://github.com/webpack/webpack/मुद्दों/118 –

उत्तर

2

मुझे लगता है कि आपको वेबपैक context में देखना है। असल में जब आप किसी ऐसी अभिव्यक्ति की आवश्यकता होती है जिसमें अभिव्यक्ति हो, वेबपैक एक संदर्भ बनाएगा। उस अभिव्यक्ति को नियमित अभिव्यक्ति के रूप में माना जाएगा और यह काम नहीं करता है जैसा आप उम्मीद कर सकते हैं।

0

प्रयास करें:

require(`svg-inline!${$path}connected.svg`) 

और यदि आप अपने गतिशील पथ कोशिश विभाजन में अधिक चर की जरूरत की आवश्यकता होती है:

function getIcon(name) { 
 
\t const [category, filename] = name.split(":"); 
 

 
\t if (filename) { 
 
\t \t return require(`one_directory/icons/${category}/${filename}.svg`); 
 
\t } else { 
 
\t \t return require(`two_directory/icons/${name}.svg`); 
 
\t } 
 
}

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