Как именно оценивается модуль в синтаксисе `import` ES6?
Проблема с множественной инициализацией модуля в ES6
У меня есть четыре модуля: A
, B
, C
и D
.
В модуле A
я объявил следующий код:
console.log("A evaluated")
function AClass() {
console.log("A constructor")
}
var aObj = new AClass()
export default aObj;
В модуле B
я импортирую объект aObj
из A
:
import aObj from A
export default "B"
В модуле C
также происходит импорт aObj
из A
:
import aObj from A
export default "C"
В модуле D
я импортирую модули B
, C
и A
:
import b from B
import c from C
import aObj from A
Вопрос: когда модуль D
будет оцениваться, сколько раз в консоль будет выведено сообщение "A evaluated" и "A constructor"?
Это поведение описано в стандарте ES6? Что мне делать, если я хочу, чтобы модуль оценивался ТОЛЬКО ОДИН РАЗ вне зависимости от того, сколько раз он импортируется напрямую или косвенно? Есть ли идеи по этому поводу?
module.exports против exports в Node.js: что выбрать?
Получение ошибки "Неожиданный токен Export"
Как остановить Babel от трансформации 'this' в 'undefined' и добавления "use strict"
Обнаружена ошибка: Невозможное нарушение: Неверный тип элемента: ожидался строковый тип (для встроенных компонентов) или класс/функция, но получен объект
Добавление тега script в React/JSX