如何将 package.json 转换为 Firefox 附加组件的 install.rdf?
Posted
技术标签:
【中文标题】如何将 package.json 转换为 Firefox 附加组件的 install.rdf?【英文标题】:How do I convert a package.json to install.rdf for a Firefox add-on? 【发布时间】:2015-05-05 14:50:28 【问题描述】:我有一个适用于 Firefox 的可用插件,它是使用 cfx
工具构建的。从 Firefox 38 开始,该工具已被弃用,取而代之的是 jpm
。我按照说明进行切换,但在运行时,我经常收到 undefined
一词,即使插件运行良好。
JPM undefined Starting jpm run on Magnetz
Creating XPI
JPM undefined XPI created at C:\Temp\example@add-on-1.0.0.xpi (133ms)
Created XPI at C:\Temp\example@add-on-1.0.0.xpi
JPM undefined Creating a new profile
论坛中有人建议未定义来自install.rdf
文件,我没有。我只有一个package.json
,这是基于cfx
的进程所需要的。
查看典型install.rdf
文件的内容,它似乎包含或多或少与package.json
相同的数据。有什么方法可以将package.json
转换为install.rdf
?
我实际上找不到最近更新的 install.rdf
插件,大多数链接都在谈论基于 XUL 的旧插件。
我也很困惑为什么基于 Python 的工具 (cfx
) 偏爱基于 javascript 的 package.json
文件,而基于 JavaScript 的较新工具 (jpm
) 偏爱可能已弃用的基于 XML 的 @ 987654336@.
【问题讨论】:
【参考方案1】:有一个从 cfx here 转换到 jpm 的指南。简而言之,您不必创建自己的 install.rdf 文件,cfx 和 jpm 都会为您创建一个。 Install.rdf 是一个老旧的 xml 文件,但它是扩展在 Firefox 中工作所必需的。
package.json
文件有一个“标题”字段,您可以添加该字段以便为您的插件提供一个“显示名称” - 这将替换旧的“完整名称”字段。
至于您看到的“JPM 未定义”消息 - 我认为这实际上是 JPM 中的一个错误。
【讨论】:
AMO 开发中心上的指南有类似的信息,但他们都没有明确告诉我 install.rdf 是在什么时候创建的,或者我如何要求它这样做。我需要在我现有的插件文件夹中 jpm init 吗? install.rdf 是 jpm 在运行 jpm xpi 时创建的,请参阅 jpm 源代码中的 this function。 好吧......所以,就像你说的,我的“未定义”问题可能与 index.rdf 根本无关,而且我一直在叫错树......以上是关于如何将 package.json 转换为 Firefox 附加组件的 install.rdf?的主要内容,如果未能解决你的问题,请参考以下文章
如何运行 `npm update` 以便将版本号更新为 package.json 中兼容的最新版本?
如何将反应应用程序创建为服务/包并将其导入另一个应用程序的“package.json”