JavaScript 源映射的规范/标准在哪里?

问题描述 投票:0回答:1

我非常习惯跨浏览器 Web API 拥有由标准机构拥有的规范文档,例如W3C 的 WebRTC 规范,或 Khronos 的 WebGL 规范

另一个 Web API 是“Source Maps”,在本文中进行了非正式描述,并在 Chrome、Firefox 和其他地方实现。

但是,这个API/功能似乎没有权威规范!所有文章/实现都只是链接到这个 Google 文档 URL,其中仅显示“我们很抱歉。您无法访问此项目,因为它违反了我们的服务条款。”

这个被删除的 Google 文档真的是 Source Maps 的权威来源吗?如果是这样,这个功能是如何逃脱任何合理的标准化过程的?如果没有,权威规范在哪里?

javascript browser standards source-maps
1个回答
0
投票
您的文档链接神秘地又开始工作了。

我尝试阅读它,但我无法理解它在说什么。这就像学生写的东西是为了向老师证明他们知道一些东西,但没有为试图学习该东西的人提供解释力。

webpack间接依赖生成神秘

"mappings":";;;AAAA,6BAA+B;..."

的实际代码位于
mozilla/source-map github项目:

_serializeMappings() { let previousGeneratedColumn = 0; let previousGeneratedLine = 1; let previousOriginalColumn = 0; let previousOriginalLine = 0; let previousName = 0; let previousSource = 0; let result = ""; let next; let mapping; let nameIdx; let sourceIdx; const mappings = this._mappings.toArray(); for (let i = 0, len = mappings.length; i < len; i++) { mapping = mappings[i]; next = ""; if (mapping.generatedLine !== previousGeneratedLine) { previousGeneratedColumn = 0; while (mapping.generatedLine !== previousGeneratedLine) { next += ";"; previousGeneratedLine++; } } else if (i > 0) { if ( !util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1]) ) { continue; } next += ","; } next += base64VLQ.encode( mapping.generatedColumn - previousGeneratedColumn ); previousGeneratedColumn = mapping.generatedColumn; if (mapping.source != null) { sourceIdx = this._sources.indexOf(mapping.source); next += base64VLQ.encode(sourceIdx - previousSource); previousSource = sourceIdx; // lines are stored 0-based in SourceMap spec version 3 next += base64VLQ.encode( mapping.originalLine - 1 - previousOriginalLine ); previousOriginalLine = mapping.originalLine - 1; next += base64VLQ.encode( mapping.originalColumn - previousOriginalColumn ); previousOriginalColumn = mapping.originalColumn; if (mapping.name != null) { nameIdx = this._names.indexOf(mapping.name); next += base64VLQ.encode(nameIdx - previousName); previousName = nameIdx; } } result += next; } return result; }
    
© www.soinside.com 2019 - 2024. All rights reserved.