在 ES6 中同步加载其名称在运行时确定的模块
Synchronously load a module whose name is determined at runtime in ES6
使用 CommonJS,require
调用是同步的,可以轻松地像这样动态加载模块:
require('./' + localModulePath);
ES6 引入了返回 Promise 的 System.import
,标准import
似乎不允许在运行时确定的名称。这是 ES6 模块缺少的 CommonJS 功能还是我缺少什么?
这是 ES6 模块缺少的 CommonJS 功能还是我缺少什么?
我不这么认为。模块加载过程是异步的这一事实允许您在不同的环境中使用相同的方式。例如,在浏览器中不可能同步加载模块,或者至少我们希望避免它,因为在 JS 中同步获取资源是不好的。
但是,import
语法给您的印象是同步加载。使语句可静态分析是一个深思熟虑的决定,以便环境可以在执行脚本之前加载所有依赖项,无论它们希望哪种方式。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何在运行时在angular 2中加载外部js脚本
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- http.listen()在运行时接受终端命令
- 自定义运行时Can'在谷歌应用引擎中看不到我的自定义日志
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- JavaScript运行时是如何工作的
- Electron和Typescript:如何在运行时正确处理模块
- 在 ES6 中同步加载其名称在运行时确定的模块
- 节点.js并在运行时/在运行时生成模块
- 为什么我的类在运行时未定义.Javascript 模块模式
- 在运行时重新加载模块
- 运行时未定义Typescript模块
- grunt-contrib- requires不能解析我的运行时模块注入
- requireJs在travis上运行时找不到模块
- 有没有可能在运行时使用angularAMD惰性加载和注入angular模块?
- 什么时候(编译/运行时)一个依赖的节点模块被链接到项目时,它是require()'
- AngularJS:动态地在运行时定义模块依赖
- 在Angular运行时注入模块