我对这些陈述中的模块说明符引用的内容感到困惑:
export {bar} from "foo";
import {bar} from "foo";
"foo"
指的是什么?它不能是一个文件,因为它类似于"./foo"
。如果它不是文件,我认为它是一个ID。如何定义ID?
我从js文件导出,但导入将是firefox浏览器中内联html脚本(type="module"
)的一部分。
已验证浏览器版本(和浏览器设置)可与es6模块配合使用。
提前致谢。
答案 0 :(得分:12)
ES6未指定模块说明符所指的内容 确实只是:一个标识符。没什么。
由环境解决这些标识符到实际模块。加载器可能将它们解释为相对文件路径,全局ID,npm模块名称,以及其他任何内容。
在浏览器中,<script type="module">
took some time to specify,但它终于来了。 "foo"
的模块说明符当前无效,浏览器将忽略该模块,因为它不知道如何处理它。它需要解析为要加载的URL的内容。杰克阿奇博尔德wrapped it up succinctly:
&#34;裸&#34;目前不支持导入说明符。有效的模块 说明符必须与以下之一匹配:
- 完整的非相对网址。同样,它在放置时不会抛出错误 通过
new URL(moduleSpecifier)
。- 从
/
开始。- 从
./
开始。- 从
../
开始。其他说明符保留供将来使用,例如导入内置 模块。