В синтаксисе `import` ES6 как точно оценивается модуль?

Допустим, у нас есть четыре модуля,A, B,C а такжеD

В модулеA:

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

В модулеB:

import aObj from A
export default "B"

В модулеC:

import aObj from A
export default "C"

В модулеD:

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

Итак, когда модульD оценивается, сколько раз будетA evaluated а такжеA constructor печататься в консоли?

Это поведение описано вСтандарт ES6? Что мне делать, если я хочу, чтобы модуль оценивался ТОЛЬКО ОДИН РАЗ, независимо от того, сколько раз он импортирован прямо или косвенно? У кого-нибудь есть идеи по этому поводу?

Ответы на вопрос(1)

Ваш ответ на вопрос