如何将 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) 偏爱基于 javascriptpackage.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 中兼容的最新版本?

.babelrc 配置放在 package.JSON

如何将反应应用程序创建为服务/包并将其导入另一个应用程序的“package.json”

Angular2 fire 没有导出成员“FirebaseListObservable”

Webpack 没有将 ES6 转换为 ES5

如何将react app创建为服务/程序包并将其导入另一个应用程序的'package.json'