Я безуспешно пытаюсь использовать динамически загружать модуль в Firefox (версия 66.0.2 (64-разрядная версия) в OS X 10.14.3).
Я получаю следующую ошибку:
SyntaxError: dynamic module import is not implemented
Он отлично работает в Google Chrome.
index.html
:
<!DOCTYPE html>
<html lang = "en">
<head>
<title>Dynamic module test</title>
<meta charset = "utf-8">
</head>
<body>
<p>Test</p>
<script async = "" type = "module" src = "module.js"></script>
<script type = "module" src = "main.js" ></script>
</body>
</html>
main.js
:
let main = ()=> {
import('./module.js').then((loadedModule) => {
console.info('module loaded')
if (loadedModule.activate) {
loadedModule.activate()
}
})
.catch((error) => {
console.info(error)
});
}
document.addEventListener("DOMContentLoaded", main)
module.js
:
export function activate() {
console.info('activate module')
}
Я сделал пример проекта, чтобы можно было скачать экспорт в .zip (Файл > Экспорт в ZIP).
Поскольку у меня пока не было ответа, я сделал отчет об ошибке на bugzilla.
🤔 А знаете ли вы, что...
JavaScript поддерживает модульную структуру, что способствует организации кода на больших проектах.
В Firefox вы можете изменить настройки в о: конфиг для загрузки динамических модулей:
javascript.options.dynamicImport
Как отмечается в комментариях, FF 67+ должен решить эту проблему. Он также работает без изменений, если вы используете Firefox Developer Edition.