ES6模块导入给出"Uncaught SyntaxError:Unexpected identifier"

Zer*_*2nd 59 html javascript ecmascript-6 es6-modules

对于个人项目,我正在尝试使用ES6导入来编写更清晰的代码.作为第一次测试,我正在编写一个应该生成菜单的对象.当我直接加载类时,整个代码正在工作,但是当在ES6中使用导入和导出时,它会import在行中产生"未捕获的SyntaxError:Unexpected identifier"错误main.js

我有以下文件:

资产/ JS/menu.module.js

'use strict';

export default class Menu
{ ... }
Run Code Online (Sandbox Code Playgroud)

资产/ JS/main.js

import Menu from "./menu.module.js";

window.addEventListener('DOMContentLoaded', () => {
    const menu = new Menu();
});
Run Code Online (Sandbox Code Playgroud)

的index.html

<script type="module" src="assets/js/menu.module.js"></script>
<script src="assets/js/main.js">
Run Code Online (Sandbox Code Playgroud)

请注意,这些只是相关的代码行.

使用<script type="module">或不使用线似乎对我没有任何影响.我确实启用了实验和ES6模块的chrome标志,因为没有它我收到一个关于import没有定义的错误.

Chrome版本为62,因此根据不同的来源(包括谷歌的更新日志本身),即使没有标志,这也应该有效.

任何人都可以告诉我为什么这不起作用,我做错了什么?

Zer*_*2nd 56

正如@Bergi在评论中提到的那样,添加type="module"main.js导入行解决了这个问题.现在一切正常.

感谢所有回复并试图提供帮助的人.

  • 哪里?有何评论?有什么解决方案? (8认同)
  • 您可以显示如何将其添加到导入行吗? (4认同)
  • 一个人会在文件的哪个位置添加“ type =“ module”`? (4认同)