【发布时间】:2020-06-20 02:28:48
【问题描述】:
对于个人项目,我正在尝试使用 ES6 导入来编写更简洁的代码。作为第一个测试,我正在编写一个应该生成菜单的对象。当我直接加载类时,整个代码都在工作,但是在 ES6 中使用导入和导出时,它会在 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,因此根据不同的来源(包括谷歌的更新日志本身),即使没有标志,这也应该可以工作。
谁能告诉我为什么这不起作用,以及我做错了什么?
【问题讨论】:
-
有关联的行号吗?错误在哪个文件中?
-
@BoyWithSilverWings 忘记添加了,现在才添加。它位于
main.js中的import行 -
不应该
main.js也需要type="module"吗?毕竟,它使用模块语法。 -
您的
window.addEventListener(调用缺少右括号 -
如果您不使用 HTML 怎么办?
标签: javascript html ecmascript-6 es6-modules