什么是“;格式寄存器”;JavaScript文件顶部的字符串
What is the "format register" string for at the top of JavaScript files?
我最近在各种JavaScript文件中看到了顶部的以下字符串:
"format register";
这是干什么用的?
我在angular 2和systemJS库文件中看到了它。
通过添加"格式化寄存器";在所有ts文件的顶部,问题似乎已经解决了,但我认为这只会帮助SystemJS正确理解/加载模块。。
它只是减少了所说的bug。这是它开始的最初对话。但它只是使SystemJS正确加载。事实上,众所周知,SystemJS制作了一个模块,通过添加以下内容:
System.config({
meta: { main: { format: 'register' } }
});
这里将对此进行更多解释。
使用它的理由。总之,"格式寄存器"用于确保SystemJS正确、有序地加载其模块!希望这能有所帮助!
好问题,我很感兴趣,也不了解自己,所以开始了一个探索。
这似乎是ES5代码支持ES6风格模块的一种方式。
System.register可以被认为是一种新的模块格式,旨在支持ES5中ES6模块的精确语义。这是一种在协作中开发的格式,在Traceur(作为实例化)、Babel和TypeScript(作为系统)中作为模块输出得到支持。该格式支持ES6模块支持的所有动态绑定和循环引用行为。通过这种方式,它充当了进入ES6模块的polyfill路径的安全和全面的目标格式。
https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained
示例用法:
为了添加更多细节,这里是angular 1.x升级说明中的一个示例,它显示了格式化寄存器的操作示例,但它不是在文件顶部的注释,而是在config声明中。
System.config({
packages: {
'base/app/js': {
defaultExtension: false,
format: 'register',
...
https://angular.io/docs/ts/latest/guide/upgrade.html
使用原因
当未设置模块格式时,将使用基于正则表达式的自动检测。这种模块格式检测从来都不是完全准确的,但很好地满足了大多数用例。
https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md
在文件顶部使用"格式寄存器"是向格式检测提供提示的方法之一。
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 直接下载文件,而不是从window.open(url)
- 使用babel,我如何将一些代码附加到每个文件的顶部
- 使用gump将信息写入文件顶部
- 什么是“;格式寄存器”;JavaScript文件顶部的字符串
- 从文件顶部移动javascript代码,可能使用设计模式
- 缺少“;使用严格的“;即使它's已在文件顶部声明
- responseText正在返回我的php文件的顶部
- Javascript代码不工作,如果放在文件的顶部
- 为什么标准是将css和js文件分别放在页面的顶部和底部