Я пытаюсь очистить свой код и впервые внедрить модули es6. Я создал три файла модуля и использую ключевое слово import / export, где это необходимо, и указал type="module"
в index.html.
Проблема в том, что все работает правильно, за исключением того, что все глобальные переменные не определены в моем основном файле, и теперь я получаю Reference Errors: Variable not defined
, если я пытаюсь console.log(variable)
в консоли. Еще больше меня смущает то, что если я помещаю тот же console.log(variable)
внутри IIFE в файле, он корректно отображает значение переменной без Reference Error.
Например:
<script type="module">
let foo = "some text";
(function() {
console.log(foo)
}()); // prints "some text"
console.log(foo); // prints Reference Error: foo not defined
</script>
Существуют ли специальные правила для обработки глобальных переменных в модулях es6? Я просто очень запутался, потому что все остальное работает правильно, и все, что я изменил, это разделение моего файла с помощью модулей es6 и запуск локального сервера (из-за ошибки CORS при использовании шаблона модуля).