Ich bin sehr neu (Stunden) zu Webpack.Webpack Async Laden mit dynamischem Require
Ich möchte Async laden, das ist großartig, mit dynamischen erfordert. Angenommen, ich möchte asynchron eine der beiden Dateien './DIRECTORY/FOO' oder './DIRECTORY/BAR' anfordern. Hier ist eine nicht-dynamische Version, die, glaube ich, funktioniert, wie ich erwarte:
if (condition_holds) {
require.ensure([], function()
{
require('./DIRECTORY/FOO');
});
}
else {
require.ensure([], function()
{
require('./DIRECTORY/BAR');
});
}
Und hier ist mein Versuch zu machen, diese Dynamik:
var file_name = condition_holds ? "FOO" : "BAR";
require.ensure([], function()
{
require('./DIRECTORY/' + file_name);
});
Allerdings, wenn ich webpack verwenden, um diese Stücke zu kompilieren Code, ich bekomme sehr unterschiedliche Ergebnisse. Für die erste (nicht-statische) werden zwei verschiedene Dateien erzeugt, eine für FOO und eine für BAR, und nur diese Datei wird asynchron geladen. Für die Sekunde wird nur eine Datei produziert, die sowohl FOO als auch BAR enthält. Das ist nicht das, was ich erwartet habe oder möchte. Ich möchte, dass separate Dateien erstellt werden, eine für jedes Modul und nur dieses Modul, das asynchron heruntergeladen werden soll.
Ist das erwartete Verhalten? Wenn ja, warum, und wie kann man dynamische verwenden, aber immer noch separate Module bekommen, die jeweils einzeln geladen werden?
Hier ist meine webpack.config.js:
module.exports =
{
entry: {
bundle: './main.js'
},
output: {
path: './public/js/',
filename: '[name].js',
publicPath: "/js/"
}
};
Danke, Mann. Das macht wirklich meinen Tag! –