我试图逐步模块化并在ES6中重写用ES5编写的项目。 有了这个,我有了包含类和变量以及在加载ES6模块时使用type =“ module”属性的模块的通用脚本。
示例:
<script src="constants.js"></script>
<script src="main.js"></script>
<script src="banners.js" type="module"></script>
以下是我的问题,我想在模块“ banners.js”中访问文件“ constants.js”的常量
起初我以为这是可能的,因为linux chrome和firefox接受在banners.js模块中调用全局变量,但是不幸的是iPad / iOS11 chrome不接受并且正在指责错误: ReferenceError:可以找到变量
不幸的是,我无法将模块中的constants.js文件转换为使用导出/导入语法,因为这些常量用于尚无法转换为ES6模块的ES5部分代码中,并且在以下情况下无法读取常量:我将常量转换为ES6模块。
是否可以从ES6模块中访问全局范围?还是从文件“ constants.js”中获取变量的其他方法?
也许这是iOS的Chrome错误,而Linux版本显示了正确的行为?
操作系统之间这种行为上的差异确实使我对模块的范围及其访问全局范围的能力感到困惑。