我正在尝试构建一个将模块/文件注入客户端软件包的插件。
条目配置可能如下所示:
entry: {
'main': [
'some-stuff'
],
}
我想使用我的插件:
function SomePlugin(options) {
this.entryToAppendTo = options.entryToAppendTo
}
...
plugins: [
new SomePlugin({ entryToAppendTo: 'main' })
]
在我的插件中,我想要将该文件视为在Webpack本身中完成,例如:
SomePlugin.prototype.apply = function(compiler) {
compiler.plugin( 'emit', function( compilation, callback ) {
var additionalModule = 'my-module?some-stuff=' + Date.now();
// how to add this to the specified entry?
})
});
请注意,我传递了动态查询字符串,这就是为什么我的目标是在插件中执行此操作。
我想将一个文件追加到捆绑包中,或以某种方式将其注入客户端捆绑包中。我已尝试将其添加到compilation.assets
as shown here,但它并未进入实际捆绑。我还尝试添加子编译器as demonstrated in this question,但问题相同。
答案 0 :(得分:0)
这听起来与我在此尝试做的事情(成功有限)相似:Webpack plugin: how can I modify and re-parse a module after compilation?
仅将模块插入包中的问题是,即使您将其插入包中,webpack中的已编译模块也是该包源中其他部分应该调用的函数-因此,除非包中的其他部分捆绑的源代码是require
插入您插入的捆绑包,它将不会执行。
您能否使用自定义加载程序解决该问题,该加载程序会为要包括的模块策略性地插入require
?