Я пытаюсь использовать модули ES6 в Firefox, но он не работает (WTF: если не загружается с диска).Я свел его к этому MWE, но не вижу в этом ничего плохого:
HTML index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>title</title>
<script type="module" src="main.js"></script>
</head>
<body>
<p id="status">failed</p>
</body>
</html>
Модуль file.js
export const x = 42;
Основной скрипт main.js
import { x } from './file.js';
window.onload = function() {
document.getElementById('status').textContent = x;
};
Теперь все эти файлы корректно обрабатываются NGINX:
$ cmp main.js <(curl 'localhost:8080/main.js' 2>/dev/null)
$ cmp file.js <(curl 'localhost:8080/file.js' 2>/dev/null)
$ cmp index.html <(curl 'localhost:8080/index.html' 2>/dev/null)
Но он не работает в Firefox.Переход к http://localhost:8080/
в Firefox не запускает скрипт, и на его консоли отображается только это сообщение:
Loading failed for the module with source “http://localhost:8080/main.js”. localhost:8080:7
Без дополнительной информации.
На вкладке Сеть показано, что main.js
загружен, но file.js
даже не пытался (т. е. не загружается).
Конечно, dom.moduleScripts.enabled;true
в about:config
.
Удивительно, но это работает, если япозвольте FF загрузить этот материал напрямую:
$ firefox index.html
Показывает 42
, который я ожидал увидеть.
Используемые версии:
Firefox Quantum62.0 (64-разрядная версия), все надстройки отключены и перезапущен браузер.
$ firefox -version
Mozilla Firefox 62.0