(注意,这是我遇到的问题的自助问答)
尝试向 Mozilla 附加组件提交 WebExtension 进行公开列表后,提交被审阅者拒绝,并显示以下消息:
您的附加组件包含一个 JavaScript 库文件,该文件与我们已知的任何版本都不匹配。我们要求所有附加组件使用未经修改的发行版本。
我们接受从“ajax.googleapis.com”、“jquery.com”或“jqueryui.com”下载的 JQuery/JQuery-UI 库;并无需任何修改即可使用(下载而不是复制粘贴)。缩小版本更好。 (文件名更改并不重要)
很抱歉,我们不能接受修改、重新配置或定制的库。
同一问题的另一个症状:来自 jQuery 的初始验证出现多个“Unsafe assignment to innerHTML”警告。
但是,有问题的文件确实是从 jquery.com 作为发行版、缩小版本下载的,并且没有被故意修改。 那么发生了什么?
事实证明,即使您不手动修改文件,您也可能会遇到
git
为您做的情况。
具体来说,自动处理CRLF行结尾是修改了jQuery的缩小文件,导致在以下情况下匹配失败:
为了防止这种情况发生,可以将 jQuery 文件标记为二进制文件,以便 Git 在任何情况下都不会触及它们,无论特定机器/存储库上的设置如何。
在 jQuery 所在文件夹链中的某个位置添加一个
.gitattributes
文件,并假设 jquery.min.js
是文件名:
jquery.min.js -text
将 jQuery 副本替换为新下载的副本,并与
.gitattributes
一起提交。对所有缩小的库都这样做可能是个好主意。
如果库版本被识别,验证会出现如下提示:
使用此处列出的 AMO 哈希之一支持的 jquery 版本:
例如,AMO 已知 jquery.3.2.0.jquery.min.js:
另外,请阅读此讨论。