type=“module”javascript文件是否相互隔离?

type=“module”javascript文件是否相互隔离?,javascript,ecmascript-6,es6-modules,Javascript,Ecmascript 6,Es6 Modules,我的HTML文档底部引用了两个外部脚本: <script type="module" src="/scripts-1.js"></script> <script type="module" src="/scripts-2.js"></script> 然后该函数将执行 但是如果我将函数声明添加到/scripts-1.js和logHelloWorld中;到/scripts-2.js,然后控制台显示错误: ReferenceError:未定义logHe

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

<script type="module" src="/scripts-1.js"></script>
<script type="module" src="/scripts-2.js"></script>
然后该函数将执行

但是如果我将函数声明添加到/scripts-1.js和logHelloWorld中;到/scripts-2.js,然后控制台显示错误:

ReferenceError:未定义logHelloWorld


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

是。其他模块使用的资源必须显式导出,并在需要时导入


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

是。其他模块使用的资源必须显式导出,并在需要时导入


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

模块实际上彼此绝缘。您可以从一个模块导出内容并将其导入另一个模块。一般来说,type=module标志被认为是一个未来的特性,目前还没有被广泛使用。最好使用另一个工具将所有JS文件像webpack一样捆绑在一起。

模块实际上是相互隔离的。您可以从一个模块导出内容并将其导入另一个模块。一般来说,type=module标志被认为是一个未来的特性,目前还没有被广泛使用。最好使用其他工具将所有JS文件像webpack一样捆绑在一起。

谢谢,Peter。我不知道有一场捆绑与本机模块的辩论。我在2019年初开始使用本机ES2015模块,我非常喜欢迄今为止所看到的。早在2019年1月,我就开发了一个基于PHP的解决方案,以弥补对动态导入的支持不足,但我看到支持现在已经到来:上个月的文章表明,从现在开始,本地模块的使用可能开始增加。谢谢,Peter。我不知道有一场捆绑与本机模块的辩论。我在2019年初开始使用本机ES2015模块,我非常喜欢迄今为止所看到的。早在2019年1月,我就开发了一个基于PHP的解决方案,以弥补对动态导入的支持不足,但我看到支持现在已经到来:上个月的文章表明,从现在开始,本地模块的使用可能开始增加。
const logHelloWorld = () => console.log('Hello World');

logHelloWorld();