我需要重构一些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!!!');
}
答案 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违规而失败,但这是另一个问题。