Donné
const anInstance = new Plugin({ a: 'path' })
Pouvez-vous renvoyer les arguments donnés?
anInstance./* some method */ === [{ a: 'path' }] // or someWrapper(anInstance) === [{ a: 'path' }]
Restrictions:
Plugin
: traiter comme une dépendance externe. Plugin
peut avoir plus d'un argument, de n'importe quel type. Vous ne pouvez pas attribuer les arguments initiaux à une variable externe, de la manière suivante:
const config = { a: 'path' } const anInstance = new Plugin(config)
Contexte : J'essaie d'écrire un test pour une configuration de plug-in sur le pack. Par exemple:
module.exports = { plugins: [ new wepback.DllPlugin({ name: '[name]', path: path.join(buildDir, '[name].json'), }) ] }
Je souhaite tester la configuration donnée au DllPlugin. La restriction n ° 3 ci-dessus est là parce que je ne veux pas avoir à exporter la configuration pour chaque plugin lorsque le seul consommateur de cette exportation serait mon test.
S'il n'y a aucun moyen de faire ma demande initiale, je devrai ajouter ces exportations, car je ne peux penser à aucune autre façon d'accéder à ces arguments.
Vous pouvez définir une class
, utiliser 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());