我有一个可用的Firefox插件,它是使用cfx
工具构建的。从Firefox 38开始,该工具被取消了对jpm
的支持。我按照说明进行了切换,但在运行时,我经常得到术语undefined
,尽管附加组件工作得很好。
JPM undefined Starting jpm run on Magnetz
Creating XPI
JPM undefined XPI created at C:Tempexample@add-on-1.0.0.xpi (133ms)
Created XPI at C:Tempexample@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的install.rdf
。
这里有一个从cfx转换到jpm的指南。简而言之,您不必创建自己的install.rdf文件,cfx和jpm都会为您创建一个文件。Install.rdf是一个旧的crufty xml文件,但扩展名在Firefox中工作是必要的。
package.json
文件有一个字段"Title",您可以添加该字段,以便为加载项提供"显示名称"-这将替换旧的"fullName"字段。
至于您看到的"JPM undefined"消息,我认为这实际上是JPM中的一个错误。