为了一个个人项目,我试图使用ES6的import来编写更干净的代码。作为第一次测试,我正在编写一个应该生成菜单的对象。当我直接加载类时,整个代码都可以工作,但是当使用ES6中的import和export时,在main.js中的import行会给出“Uncaught SyntaxError:Unexpected identifier”错误。
我有以下文件:
assets/js/menu.module.js
'use strict';
export default class Menu
{ ... }
assets/js/main.js
import Menu from "./menu.module.js";
window.addEventListener('DOMContentLoaded', () => {
const menu = new Menu();
});
index.html
<script type="module" src="assets/js/menu.module.js"></script>
<script src="assets/js/main.js">
请注意,以下是相关的代码行。
对于我来说,使用
<script type="module">
行或不使用似乎没有任何区别。 我已经启用了实验性和ES6模块的Chrome标志,因为如果没有它们,我会收到有关import
未定义的错误。Chrome版本应该是62,因此根据不同的来源(包括Google的更新日志本身),即使没有这些标志,它也应该正常工作。
有人能告诉我为什么这不起作用以及我做错了什么吗?
main.js
的import
行中。 - ZeroThe2ndmain.js
也需要type="module"
吗?毕竟它使用了模块语法。 - Bergiwindow.addEventListener(
调用缺少一个闭合括号。 - Bergi