鉴于
const anInstance = new Plugin({ a: 'path' })
你能否回复给出的论点?
anInstance./* some method */ === [{ a: 'path' }]
// or
someWrapper(anInstance) === [{ a: 'path' }]
限制:
Plugin
的内部实施:视为外部依赖。Plugin
可能有多个参数,任何类型。您无法将初始参数分配给外部变量,如下所示:
const config = { a: 'path' }
const anInstance = new Plugin(config)
后台:我正在尝试为webpack插件配置编写测试。例如:
module.exports = {
plugins: [
new wepback.DllPlugin({
name: '[name]',
path: path.join(buildDir, '[name].json'),
})
]
}
我想测试给DllPlugin的配置。上面的限制#3是因为我不想导出每个插件的配置,因为该导出的唯一消费者将是我的测试。
如果无法做我的初始询问,那么我将不得不添加这些导出,因为我无法想到任何其他方式来访问这些参数。
答案 0 :(得分:0)
您可以定义class
,使用extend
function Plugin() {}
class getPluginArgs extends Plugin {
constructor(...args) {
super();
this.args = args;
for (let arg of args) {
console.log(arg)
}
}
getArgs() {
return this.args;
}
}
const anInstance = new getPluginArgs({ a: "path" });
console.log(anInstance instanceof Plugin, anInstance.getArgs());