我正在开发一款JavaScript游戏,它可以在Chrome和Safari中使用。但是,在Firefox中,页面不会加载任何脚本,调试器为空。我根本没有看到任何错误。这是整个html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script type="module" src="foo.js"></script>
<script type="module" src="bar.js"></script>
<script type="module" src="baz.js"></script>
<script type="module" src="qux.js"></script>
<script type="module" src="foobar.js"></script>
<script type="module" src="bazqux.js"></script>
</body>
</html>
更新:为未来读者添加了一些背景信息:根据Roko C. Buljan的回答,在撰写本文时,FireFox默认情况下ES6模块未启用。那就是问题。
答案 0 :(得分:4)
您正在使用Firefox中未公开提供的module
功能。要启用它们,您可以转到about:config
并在dom.moduleScripts.enabled
下将其值设置为true
同时你可以use a polyfill like this或使用build tools将模块编译成一个ES5支持的生产就绪文件。
一些深入的读数:
https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-module-system
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
https://jakearchibald.com/2017/es-modules-in-browsers/
https://medium.com/webpack/the-state-of-javascript-modules-4636d1774358