Импортирует ли модуль модуля ES6 код внутри импортируемого файла?

Выполняется ли код внутри js файла во время импорта? если да, то один раз или каждый раз? например

// a.js
console.log("A");
const a = "a"; 
export default a;

// b.js
import a from "./a"; // => console logs?

// c.js
import a from "./a"; // => console logs again?

Ответы

Ответ 1

Да, это так, ровно один раз. Почему бы вам просто не попробовать?

См. Http://www.ecma-international.org/ecma-262/6.0/#sec-abstract-module-records:

Не делайте ничего, если этот модуль уже был оценен. В противном случае, транзитивно оцените все модульные зависимости этого модуля, а затем оцените этот модуль