【问题标题】:develop a firefox extension in place (not via encoding to xpi first)?开发一个适当的Firefox扩展(不是首先通过编码到xpi)?
【发布时间】:2012-11-09 08:31:47
【问题描述】:

为 Mozilla Firefox 开发扩展 我想知道我现在所做的是否有“更简单的方法”。目前我这样做:

  1. 创建一个文件夹 - 用于开发 - 例如myextension

  2. 在此文件夹中:创建和编辑文件(如 install.rdf、chrome.manifest、xul 文件。基本上是 Firefox 扩展的所有其他结构(这里没问题))

  3. myextension的内容压缩成一个ZIP文件(即命名为myextension.zip)

  4. 将 myextension.zip 重命名为 myextension.xpi

  5. 在 firefox 中安装 xpi-file-firefox-extension

  6. 重启火狐

  7. 测试扩展

每次编辑扩展的代码库后,我需要经历 3. zip-compress,4. 重命名,5. 将 XPI 文件安装到 firefox,6 重启浏览器的过程。

当然我可以自动化其中一些,但我仍然想知道是否有另一种方法可以直接在运行的 firefox 配置文件文件夹中开发 firefox 扩展。

我知道的扩展存储在 Firefox 配置文件夹中: firefox/profile/extensions/nameofextension.xpi

我记不太清了,但我认为有一种方法可以将扩展名也解压缩为一个文件夹吗?这样我仍然需要在编辑后重新启动,但不需要执行所有繁琐的压缩-重命名-安装。

有什么想法吗?

【问题讨论】:

  • 这是我一直在寻找的解决方案 blog.mozilla.org/addons/2009/01/28/… 简而言之,我将在此处发布我的问题的答案,提供有关“如何设置 firefox 扩展的就地编辑”的基本说明"

标签: firefox firefox-addon edit-in-place


【解决方案1】:

可以设置一个目录来“就地编辑”一个 firefox 扩展。这样可以减少 Firefox 扩展的编辑和测试之间的工作量。

我在博客https://blog.mozilla.org/addons/2009/01/28/how-to-develop-a-firefox-extension/找到了很好的解释

在这里,我想给出实现“就地编辑”所需的主要步骤

第 1 步:您必须找到 Firefox 的 个人资料目录。 例如在 Linux 中,这通常是这样的: ~/.mozilla/firefox/#%#%.default/

第 2 步:转到此个人资料目录

第 3 步:如果您已经安装了任何扩展程序(例如 adblock+ 或 noscript),那么在这个 配置文件目录 中,您会找到一个名为 extensions 的文件夹。如果您还没有安装任何额外的扩展,可能很容易安装任何扩展,只需为您设置 **extensions" 文件夹。

第 4 步:在这个 extensions 文件夹中,您可以创建一个新目录(让我们将其命名为“myextensions_1”),其中应包含插件的内容。这些东西是普通的东西,比如install.rdfchrome.manifest 文件和contentskinlocale 子目录。实际上,您通常会压缩所有内容以成为 XPI 文件。

步骤 5. 创建一个文件,该文件与您在 ìnstall.rdf 文件中使用的 <em:id> 标记的内容相同。所以如果你使用<em:id>myextensionname@author.org</em:id>,你需要创建一个名为myextensionname@author.org的文件。在此文件中,您将写入我们之前创建的“就地编辑扩展文件夹”的位置。在我们的示例中,我们将拥有

  • 文件myextensionname@author.org
  • 仅包含文本~/.mozilla/firefox/#%#%.default/extensions/myextensions_1

当然,文本取决于您用于插件的文件夹的位置。

如果您做的所有事情都正确 - 并且可能仔细检查了上面链接的说明 - 您可以重新启动或“重新启动”firefox。浏览器会询问您是否允许使用插件 myextensionname@author.org,您可以同意。

现在您可以在文件夹~/.mozilla/firefox/#%#%.default/extensions/myextensions_1 中进行编辑,无需担心压缩-> 重命名-> 安装。 您只需重新启动 Firefox,您的扩展代码的编辑将变为可用。

这将使您能够更快、更快速地“就地”开发。

【讨论】:

  • 是否可以将自己的答案标记为“解决方案”?虽然我绝对认为这似乎有点傲慢和自信,但我不得不说。我研究了答案(在 stackoverflow 宇宙之外),当提出问题时,它确实允许我正在寻找的东西
  • 另一个很好的资源,其中还包括一些提示如何设置 inplace-editing 可以在这里找到https://developer.mozilla.org/en-US/docs/Setting_up_extension_development_environment
  • 我访问了 mozilla 链接,因为您的说明对我不起作用。我在 mozilla 链接上注意到他们说要确保您在目录名称上包含一个斜杠,您已经省略了一些内容,您也省略了明确提及将代理文件放入的目录。顺便说一句,扩展数据文件不需要住在扩展目录中,只有代理文件。 update 我把代理文件放在完全错误的目录中。毕竟最后可能不是斜线。
  • 让我猜猜:) 你把它放在.mozilla 文件夹下面的extensions 目录中,而不是.mozilla/firefox/XXXX.profilename/ 文件夹中的那个吗?我认为这可能是文件夹名称.mozilla/extensions/ 似乎暗示其扩展的常见陷阱。事实上,当 firefox 或其他 mozilla 软件安装 xpi 扩展或更新它们时会用到它。这是一些临时暂存区的东西。最后,您现在设法设置了所有内容吗?
  • 是的,你没看错,呵呵 :) 是的,成功了,非常感谢。
【解决方案2】:

注意:这是一个无耻的自插件 - 我说的是我自己创建的扩展。

就地开发扩展是可能的,但存在很多问题(主要是各种缓存),这确实不是一个好的选择。不过,您可以大大简化您的开发周期。为此,您需要在 Firefox 中安装 Extension Auto-Installer 附加组件。然后你可以将一个批处理文件(假设你在 Windows 上开发)放入你的扩展目录中:

zip -r test.xpi * -xi *.bat *.xpi
wget --post-file=test.xpi http://localhost:8888/
del test.xpi

所需的命令行工具都预装在基于 Unix 的系统上,对于 Windows,您可以轻松下载它们:zipwget

然后您只需要运行该批处理文件即可在 Firefox 中更新您的扩展程序。如果您的扩展程序不是无重启,那么 Firefox 将自动重启。所以这取代了你的第 3 步到第 6 步。

【讨论】:

  • 谢谢。我在linux中开发。您简化和自动化“扩展程序开发文件夹中 xpi 的 zip-rename-install”的想法很聪明。无论如何,我找到了这篇blog.mozilla.org/addons/2009/01/28/… 文章。它详细说明了进一步简化流程的方法。事实上,这是我在这里寻找的“就地编辑”选项。我已经回复了我的“自己”的答案,但我只能在等待 8 小时后给出指示(对于我的“可怜”的 8 个经验点 :)
  • @humanityANDpeace:是的,你找到了我提到的“有很多问题”的选项。我通常会尝试给出一个有用的答案,但并不总是 OP 要求的答案 - 但祝你好运!
  • @Wladimir:非常感谢您的回答,谢谢。确实 - 如果没有 - 更快捷的解决方案,我很可能会开发出您建议的这种机制/自动化。当然还是在linux中。也许您也可以利用我的回答的灵感进一步改进您的 Firefox 扩展开发过程?
  • 我有点担心您建议的解决方案中所需的扩展自动安装程序。这是否会增加风险……?即对于某些网站“自动安装”恶意扩展?
  • @humanityANDpeace: Extension Auto-Installer 默认只接受本地连接...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多