【发布时间】:2016-02-23 19:50:02
【问题描述】:
我正在 typescript 中编写 firefox 插件(并且我使用 webpack 来构建项目),我对这个问题感到困惑。
firefox 里面有require 函数,我这样用:
let { Cu, Cc, Ci } = require('chrome');
但是 typescript(更准确地说是 tslint)将其视为导入/导出语句,并且需要更改表达式。 我已经声明了要求:
declare function require(moduleId:string) : any;
但它没有给出任何结果。
我也改变了 tslint.json 中的no-var-requires 选项,但没有引起任何注意。
所以问题是 - 是否可以在 typescript 代码中使用 firefox require 函数以及如何通过 typescript、tslint 和 webpack 拖动此函数(它也将目光投向了 require)?
提示 - 这是关于背景脚本,而不是内容或弹出窗口。
【问题讨论】:
-
非常非常酷。我喜欢打字稿,但还没有在 Firefox 项目中使用它。
-
好的,伙计们,有两种方法可以找到我:
-
ffrequire=eval('require');在代码中进一步使用 ffrequire。或者编辑 webpack 配置,例如: externals: [{"sdk/self" : "require('sdk/self')"}] 并在代码中使用正常的 require。
-
太棒了!谢谢分享!
-
不客气!注意 - 如果您想通过 firefox 商店分发,第一种方法不是最好的 - 它需要清单中的 'unsafe-eval' content_security_policy,这对于审阅者来说是不可接受的。
标签: javascript typescript firefox-addon webpack es6-module-loader