Wie wird ein Modul in der `import` -Syntax von ES6 genau ausgewertet?

Nehmen wir an, wir haben vier Module,A, B,C undD

In ModulA:

console.log("A evaluated")
function AClass {
  console.log("A constructor")
}
var aObj = new AClass()
export default aObj;

In ModulB:

import aObj from A
export default "B"

In ModulC:

import aObj from A
export default "C"

In ModulD:

import b from B
import c from C
import aObj from A

So wenn ModulD wird ausgewertet, wie oft wird dasA evaluated undA constructor in der Konsole gedruckt werden?

Ist dieses Verhalten in @ beschriebe ES6 Standard? Was kann ich tun, wenn ein Modul NUR EINMAL ausgewertet werden soll, unabhängig davon, wie oft es direkt oder indirekt importiert wird? Hat jemand irgendwelche Ideen dazu?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage