实现本机ES6模块的“意外令牌导入”

时间:2017-09-25 20:53:23

标签: javascript google-chrome ecmascript-6 es6-modules

我需要重构一些JavaScript代码,并尝试使用本机导入/导出命令实现ES6模块。我努力工作了一段时间,所以我将记录这里需要做些什么以供将来参考。

症状是我在Chrome控制台中收到以下消息:

Uncaught SyntaxError: Unexpected token import

我的测试基本代码是:

HTML:

<!DOCTYPE html>
<html>
<body>
<h1>Import test</h1>
</body>
<script type="application/javascript" src="./import.js"></script>
</html>

import.js:

import { apath } from './alert_path';

alert_path.js:

export function apath() {
    alert('Bang!!!');
}

1 个答案:

答案 0 :(得分:2)

我必须采取两项措施来解决此问题。

首先,Chrome必须为61+或chrome://标志必须启用实验性网络平台功能。

其次,脚本标记必须使用类型模块:

<!DOCTYPE html>
<html>
<body>
<h1>Import test</h1>
</body>
<script type="module" src="./import.js"></script>
</html>

我在“什么是基础知识”下找到了第二个答案here

  

模块必须最终包含在HTML中,类型为&#34; module&#34;,   它可以显示为内联或外部脚本标记。

OBTW,除非通过服务器运行,否则在解决此问题后,样本将因CORS违规而失败,但这是另一个问题。