ich einen Ordner App
haben, die enthält:Können sich zwei Dateien als Abhängigkeiten in Javascript bei der Verwendung von Webpacks enthalten?
index.html
lib
Ordner mein Javascript (JS) -Dateien
Ich verwende webpack enthält meine JS-Dateien zu bündeln, so dass jede JS-Datei erfordert Es sind Abhängigkeiten (andere JS-Dateien im selben lib-Ordner) oben und module.exports unten.
spaceship.js
exportiert eine Konstruktorfunktion Spaceship und bullet.js
exportiert eine Konstruktorfunktion Bullet.
Ich habe dann eine JS-Datei factory.js
, die ein Objekt namens Factory exportiert. Dieses Objekt enthält eine Methode namens createSpaceship und andere genannt createBullet:
// Factory.js
var Bullet = require("./bullet.js");
var Spaceship = require("./spaceship.js");
var Factory {
createSpaceship: function() {
(...)
return new Spaceship();
},
createBullet: function() {
(...)
return new Bullet();
}
}
module.exports = Factory;
jedoch innerhalb von spaceship.js, gibt es ein Verfahren genannt fireBullet, die eine neue Instanz der Kugel erzeugt. Um dies zu tun, möchte ich factory.js in spaceship.js anfordern. Ist es ein Problem zwei Dateien zu haben, die sich gegenseitig auf diese Weise benötigen?
// spaceship.js
var Factory = require("./factory.js");
var Spaceship = function() {
//constructor
}
Spaceship.prototype.fireBullet = function() {
(...)
return Factory.createBullet();
}
Ich erhalte einen Fehler in spaceship.js wie
Uncaught TypeError: Factory.createBullet is not a function
Ich weiß nicht, technisch wie webpack funktioniert, und so kann ich nicht sicher sein, dass diese gegenseitige erforderlich ist, was die Erzeugung Error.
Wäre das nicht sein eine zirkuläre Referenz, und wie würden Sie etwas in A von B benötigen, das A verwendet, um B arbeiten zu lassen, wenn A noch nicht fertig ist, weil es immer noch B verwendet, welches zuerst kommt, das Huhn oder das Ei? – adeneo
Ja, ich stimme zu. Ich wollte nur eine etwas technische Bestätigung, dass das tatsächlich so ist. – evianpring