2016-09-13 22 views
6

require'u kullanarak dosyayı manuel olarak istediğimde, ancak tam olarak aynı isteği kullandığımda, ancak dizeyi, başarısız olduğu değişkenlerle bölünecek şekilde değiştirdiğimde iyi çalışır.Dinamik dosya yolu web paketi ile gerekli midir?

Bu harika çalışıyor: Ancak

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

bunu yapmak olsaydı:

Bu başarısız olur ve konsolun içindeki diyor
module.exports = (function() { 
    var $path = '../../assets/svgs/global/'; 
    var $svg = require('svg-inline!'+$path+'connected.svg'); 
    console.log($svg); 
}()); 

:

Uncaught Error: Cannot find module "."

sanırım benim Soru şu, neden burada olduğum gibi dizeleri birleştiremiyorsun?

+0

https://github.com/webpack/webpack/sorunlar/118 –

cevap

2

Webpack context'a bakmanız gerektiğini düşünüyorum. Temel olarak, bir ifade içeren bir şeye ihtiyacınız olduğunda, web paketi bir içerik oluşturacaktır. Bu ifade normal bir ifade olarak ele alınacak ve beklediğiniz gibi çalışmaz.

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

ve size dinamik yol deneyin bölünmüş daha değişken gerekiyorsa gerektirir:

0
deneyin

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 } 
 
}

İlgili konular