Javascript 在浏览器中+;节点,模块的范围是什么?

Javascript 在浏览器中+;节点,模块的范围是什么?,javascript,node.js,ecmascript-6,node-modules,ecma,Javascript,Node.js,Ecmascript 6,Node Modules,Ecma,我想知道一个模块在浏览器和节点中的作用域是什么。我特别想了解模块级变量是每个应用程序创建一次,还是多次创建。是在每次导入时创建模块的新实例,还是在所有导入中共享完全相同的模块?非常感谢 有几种JS模块风格——ESM、CommonJS、AMD。它们的共同特点是,至少在正常情况下,在第一次导入时对它们进行一次评估。相反的做法会使他们在共享数据方面效率低下 导出类实例是在应用程序中共享一个实例而不使类成为单例的常用方法 可以多次(有意或无意)评估模块的方法包括:拥有模块的多个副本、在不区分大小写的系统

我想知道一个模块在浏览器和节点中的作用域是什么。我特别想了解模块级变量是每个应用程序创建一次,还是多次创建。是在每次导入时创建模块的新实例,还是在所有导入中共享完全相同的模块?非常感谢

有几种JS模块风格——ESM、CommonJS、AMD。它们的共同特点是,至少在正常情况下,在第一次导入时对它们进行一次评估。相反的做法会使他们在共享数据方面效率低下

导出类实例是在应用程序中共享一个实例而不使类成为单例的常用方法


可以多次(有意或无意)评估模块的方法包括:拥有模块的多个副本、在不区分大小写的系统中导入时使用不同的文件名大小写、修改节点模块缓存。

感谢您调用文件名大小写;这是一个有趣的说明,但很有意义。