Javascript ES6导出上的意外令牌
我试图了解ES6导出是如何工作的 以下是两个本地文件: main.html: 预期结果:包含“Hello”文本的警报。实际结果:错误: module.js-第1行:意外令牌Javascript ES6导出上的意外令牌,javascript,ecmascript-6,es6-modules,Javascript,Ecmascript 6,Es6 Modules,我试图了解ES6导出是如何工作的 以下是两个本地文件: main.html: 预期结果:包含“Hello”文本的警报。实际结果:错误: module.js-第1行:意外令牌导出 main.html-第3行:意外标记{ 如何让它工作 PS.在Chrome 67中测试。Chrome中添加了对JavaScript模块的全面支持。以下是您在文档中明显遗漏的重要部分: 模块最终必须通过type=“module”包含在HTML中, 它可以显示为内联或外部脚本标记 您不必使用第一个脚本;import将引导浏览
导出
main.html-第3行:意外标记{
如何让它工作
PS.在Chrome 67中测试。Chrome中添加了对JavaScript模块的全面支持。以下是您在文档中明显遗漏的重要部分: 模块最终必须通过type=“module”包含在HTML中, 它可以显示为内联或外部脚本标记 您不必使用第一个脚本;
import
将引导浏览器下载所需的模块。因此这就足够了:
<script type="module">
import {hello} from './module.js';
let val = hello();
alert(val);
</script>
从'./module.js'导入{hello};
让val=hello();
警报(val);
但是,有一个警告:您将无法在Chrome中直接为文件系统中的模块提供服务-您需要设置“常规”HTTP服务器或应用中所述的解决方法。我猜该错误是由于缺少浏览器支持:/all browser(和versions)无法支持它。在使用之前,应先将其传输;例如:babelYou应使用类似babelAdd的传输工具
type=“module”
传输到您的
tags@JonasW.在Chrome67中测试。我倾向于认为ES6导出在Chrome中工作,尽管我不确定。
export function hello() {
return 'Hello';
}
<script type="module">
import {hello} from './module.js';
let val = hello();
alert(val);
</script>