Given
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 是因为当导出的唯一使用者是我的测试时,我不想导出每个插件的配置。
如果无法完成我最初的要求,那么我将不得不添加这些导出,因为我想不出任何其他方法来访问这些参数。
您可以定义一个class
, use 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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)