我试图了解ES6导出的工作原理。
以下是两个本地文件:
main.html中:
<script src="module.js"></script>
<script>
import {hello} from './module'; // Tried both "module" and "module.js"
let val = hello();
alert(val);
</script>
module.js :
export function hello() {
return 'Hello';
}
预期结果:警告&#34;您好&#34;其中的文字。实际结果:错误:
module.js - 第1行:意外的令牌
export
main.html - 第3行:意外的令牌
{
如何让它发挥作用?
PS。在Chrome 67中测试过。
答案 0 :(得分:3)
Chrome since version 61已添加对JavaScript模块的完全支持。这是你在文档中显然遗漏的重要部分:
模块必须最终包含在您的HTML中 type =“module”, 它可以显示为内联或外部脚本标记。
您不必使用第一个脚本; import
将指示浏览器下载所需的模块。所以这应该足够了:
<script type="module">
import {hello} from './module.js';
let val = hello();
alert(val);
</script>
但有一点需要注意:您无法直接在Chrome中提供文件系统中的模块 - 您需要设置“常规”HTTP服务器或应用this thread中描述的解决方法。< / p>