type= "module" JavaScript 文件是否彼此隔离?



我的HTML文档底部引用了两个外部脚本:

<script type="module" src="/scripts-1.js"></script>
<script type="module" src="/scripts-2.js"></script>

我一直在运行一些测试,如果我添加:

const logHelloWorld = () => console.log('Hello World');
logHelloWorld();

到任一外部文件,则函数将执行。

但是,如果我将函数声明添加到/scripts-1.js并将logHelloWorld();添加到/scripts-2.js,则控制台会显示错误:

引用错误: 未定义logHelloWorld

这是因为所有type="module"脚本都彼此隔离吗?

是的。其他模块要使用的资源必须明确export,并在需要的地方import

以下是 ES6 模块系统的众多指南之一。

模块实际上是相互"隔离"的。您可以从一个模块export内容,然后将它们import到另一个模块中。一般来说,type="module"标志被认为是目前通常不使用的未来主义功能。最好使用其他工具将所有JS文件捆绑在一起,例如webpack。

最新更新