Web paketinin React içinde kod ayırma özelliğini kullanıyorum. Kullanıcının bir seçeneği seçeceği ve karşılık gelen React bileşeninin oluşturulacağı bir uygulama yapıyorum. Ancak, CommonJs require.ensure
'u kullanmanın yalnızca kodlanmış dizelerle çalıştığını buluyorum. Değişkenler kullandığım zaman işe yarayacak gibi görünüyor, bileşenler değişiyor. Ancak ağ sekmesine baktığımda, kodu bölmediğini görüyorum - yeni paketler yüklemiyor. Nerede kod yazdığımda, her defasında yeni bir paket için bir çağrı var.Dinamik modüller ile kod bölme?
İşte çalışıyor budur:
İşteexecuteDynamic(component){
var that = this;
switch(component){
case 'SolidButton':
require.ensure([], function(require){
DynamicModule = require(`./elements/SolidButton/index.js`);
that.forceUpdate();
});
break;
case 'ThreeDButton':
require.ensure([], function(require){
DynamicModule = require(`./elements/ThreeDButton/index.js`);
that.forceUpdate();
});
break;
case 'NoPreview':
require.ensure([], function(require){
DynamicModule = require(`./elements/NoPreview/index.js`);
that.forceUpdate();
});
break;
default:
break;
}
}
çalışırdım istediğim şey:
executeDynamic(component){
var that = this;
require.ensure([], function(require) {
DynamicModule = require(`./elements/${component}/index.js`);
that.forceUpdate();
});
}
? Eğer öyleyse, Babel tarafından 'ihtiyaç duyulmadı', ve bu yüzden dinamik olarak değiştirilemez mi? Sabit kodlanmış dizeleriniz başarıyla aktarılırdı. – Benjamin
@ Benjamin- bu bir değişken - sabit kod dizelerine aktarılmıyor. Başka bir js değişkeni olarak çalışmasını beklerdim. – Steph
** 'ContextReplacementPlugin' ** sizin için çözüm olacak https://github.com/webpack/webpack/issues/118 – Everettss