2016-03-30 24 views
0

içeriğin bu tür bir girdi main.js varsa:adlı yığın

require.ensure('a', function(module){ 
    // 
}, 'chunk1'); 

require.ensure('b', function(module){ 
    // 
}, 'chunk1'); 

require.ensure('c', function(module){ 
    // 
}, 'chunk2'); 

require.ensure('c', function(module){ 
    // 
}, 'chunk2'); 

WebPack çıktısı 3 dosyalar: chunk1 modülleri a ve b ve chunk2 oluşmaktadır main.js, chunk1.js ve chunk2.js c ve d modüllerinden oluşur; çıkışlar olacak böylece İşte

function dynamicLoad(letter){ 
    require(['./modules/' + letter + '.js'], function(module){ 
     // 
    }); 
} 

Beraber modülleri birleştirmek için nasıl webpack söylemiyorlar:

Şimdi dinamik uyumsuz gerektiren böyle kullanarak aynı davranışı almaya çalışıyorum main.js ve 1.1.js 1.1, tüm modüller a, b, c ve d'den oluşur.

Modüllerin birleştirilmesi için modüllerin nasıl olmasını (veya tercih edilmesini) tanımlamanın bir yolu var mı?

GÜNCELLEME:

İstediğim ama sadece öbek girişi için, dinamik yığın için çalışmaz tam olarak ne yapar bu eklentiyi split-by-name-webpack-plugin bulundu. Bu eklentiye bakacağım ve istediğim gibi çalışıp çalışamayacağımı göreceğim.

cevap

0

Bu, require(['./modules/' + letter + '.js'] gibi tüm dinamik ifadenin gerçekten not so dynamic ve web paketinin bunları oluşturma aşamasında çözdüğü için oluyor. Dahili olarak, gereksinimlerinizi require.context olarak yeniden yazar, yeterli olacak tüm dosyaların dizinini arar (etkin olarak tüm js dosyaları modules dir) ve bunları tek bir dosyada paketler.

Webpack'i require.ensure kullanmanız gereken her dosya için ayrı bir paket oluşturmak üzere zorlamak için. Ama içine her dosyayı sarmak çok sıkıcı bir süreçtir, bu yüzden bundle loader'u aradığınızı düşünüyorum. Bunu sizin için otomatik olarak yapar.

+0

Bazı modülleri birlikte nasıl gruplandırıyorsunuz o zaman? '' 'Require.include()' yi kullanarak çalışmayı başarabildim ama birlikte paketlemek istediğim tüm modüller üzerinde yapmalıyım. Daha iyi bir çözüm var mı ? – Ghetolay

+0

Yine de 'name' parametresini yükleyiciye, hangi modülün gittiğini + hangi modülün tüm bağımlılıklarının otomatik olarak paketleneceğini kontrol edebilirsiniz. Bu hala bir nedenden dolayı istediğiniz şey değilse, ne elde etmek istediğiniz hakkında daha fazla bilgi verebilir misiniz? – somebody32