ES6导出时意外的令牌

时间:2018-06-14 14:43:54

标签: javascript ecmascript-6 es6-modules

我试图了解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中测试过。

1 个答案:

答案 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>