jpm 运行 不适用于 Firefox 48 或更高版本

jpm run does NOT work with Firefox 48, or later

jpm 版本为 1.1.3
npm 版本是 2.15.8
节点版本为 4.4.7
Firefox 版本为 48.0

index.js的内容:

var self = require("sdk/self");  
console.log("************************************");

"jpm run" 命令的输出

JPM [info] Starting jpm run on My Jetpack Addon  
JPM [info] Creating a new profile

根据index.js文件的内容,控制台应该会输出一行*个符号。但是,愿望输出不在控制台中。

代码有问题吗?

我的 package.json 文件的内容:

{  
  "title": "My Jetpack Addon",  
  "name": "temp",   
  "version":  "0.0.1",  
  "description": "A basic add-on",
  "main": "index.js",    
  "author": "",   
  "engines": {  
      "firefox": ">=38.0a1",  
       "fennec": ">=38.0a1"   },   
   "license": "MIT",  
   "keywords": [  
      "jetpack"   ]  
}

jpm run 不适用于 Firefox 48 或更高版本

问题不是 jpm,而是您正试图将它与 Firefox 48 的发行版一起使用。从 Firefox 48 开始,Mozilla 已禁用设置首选项的功能 xpinstall.signatures.requiredfalse 以允许加载未签名的附加组件。因此,您的附加组件被添加到该 Firefox 配置文件,但被禁用:

jpm run

您需要安装和使用不同版本的 Firefox

要测试您的附加组件,您需要安装不同版本的 Firefox 并使用 -b option to jpm run to tell jpm which version of Firefox to use. Assuming you don't want an old version of Firefox, your options are Firefox Developer Edition, Firefox Nightly, Unbranded Beta, or Unbranded Release

[注意(2016-08-11): 我在过去几天的测试表明,Firefox 48 的 Unbranded Release 版本和 Firefox 49.0b2 的 Unbranded Beta 版本出现了 48 中没有的问题或 49,而这些版本是 Nightly 或 Developer Edition。当前的 Developer Edition (50.0a2) 或 Nightly (51.0a2) 中不存在这些问题。换句话说,我有一个插件可以在 Developer Edition (50.0a2) 和 Nightly (51.0a2) 中使用,并且可以在 Developer Edition (49.0a2) 和 Developer Edition (48.0a2) 中使用,但不能在 Unbranded Release (48.0) 或 Unbranded Beta (49.0b2) 中工作。因此,我建议此时不要使用无品牌版本的 Firefox。]

最简单的方法是下载 Firefox Nightly 并启动 jpm 使用:

jpm run -b nightly 

nightly 一词是一个快捷方式,它解析为 Firefox Nightly 的默认安装位置。根据您使用的 OS,还可以使用其他快捷方式名称(例如 firefoxfirefoxdevelopereditionbetanightlyaurora).但是,它们无法在所有操作系统上正确解析。您始终可以选择指定要使用的 Firefox 版本的完整路径。

使用 -b 选项指定路径的另一种方法是将 JPM_FIREFOX_BINARY 环境变量更改为您希望与 jpm 一起使用的 Firefox 可执行文件的路径.

注意:我已经更新了 MDN 上 jpm 的 installation documentation,以反映从 Firefox 48 开始需要非发布版本的 Firefox。如果您最近访问过该页面,您可能需要使用Ctrl-F5刷新页面以查看新内容。