Динамическая загрузка модуля не работает в Firefox - SyntaxError: импорт динамического модуля не реализован

Я безуспешно пытаюсь использовать динамически загружать модуль в 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 поддерживает модульную структуру, что способствует организации кода на больших проектах.


1
1 112
1

Ответ:

Решено

В Firefox вы можете изменить настройки в о: конфиг для загрузки динамических модулей:

  javascript.options.dynamicImport

Как отмечается в комментариях, FF 67+ должен решить эту проблему. Он также работает без изменений, если вы используете Firefox Developer Edition.