我正在尝试Firefox附加sdk,我对一件事感到困惑。在使用 JPM 开发火狐扩展时,我们可以吗?
使用使用 npm 添加的第三方模块?使用核心节点JS模块?(如"净")
当我使用 npm 添加第三方模块时,可以加载某些模块,但某些模块失败并显示错误消息:
消息:在 resource://gre/modules/commonjs/xxx.js 找不到模块 xxx
一些例子是"净"和"实用"模块。
有没有办法制作火狐附加组件,核心nodejs模块(如"net")?
您目前不能直接在 Firefox 或任何其他浏览器的扩展中使用这样的节点模块。
对于某些东西,你可以使用类似browserify
的东西,但对于节点核心模块,如net
、fs
、dgram
,以及其他使用低操作系统级功能,不可能简单地browserify
它们。
为浏览器编写填充程序方面已经有各种努力,例如用于Chrome扩展程序的node-chromify
,但该项目似乎在一段时间前就被放弃了。
也有可能将节点本身嵌入到扩展中,但这会使它非常庞大并且仅限于特定的平台(尽管有一些 Firefox 扩展似乎已经做到了这一点)。