【问题标题】:npm modules in Firefox-Addon content scriptsFirefox-Addon 内容脚本中的 npm 模块
【发布时间】:2026-02-17 12:35:01
【问题描述】:

使用jpm,现在(从 Firefox 38 开始)可以在 Firefox 附加组件中使用 npm 模块,参见。 the documentation on MDN。 这似乎仅限于主条目文件(默认为index.js),尤其是因为require() isn't defined in content scripts

有没有办法在 Firefox-Addons 的内容脚本中使用 npm 模块?

【问题讨论】:

    标签: firefox firefox-addon npm firefox-addon-sdk jpm


    【解决方案1】:

    您可以通过require.resolve 获取文件的 url,因此请使用以下内容:

    contentScriptFile: [ require.resolve("something/lib/file.js"), require("sdk/self").data.url("content-script.js") ]

    这将在内容脚本中使用来自 npm 的文件。

    如果 npm 文件是 CommonJS 文件,那么这将变得更加棘手,您可能必须读取文件的内容,并将其传递给内容脚本(使用消息传递或contentScriptOptions)以对其进行评估requireJS 什么的。

    【讨论】:

    • 使用C的模块不能用吗?
    • 我正在尝试这个,看起来代码无法与内容交互 - 我可以进入代码,但它无法访问我面板的文档。跨度>