2013-10-31 80 views
1

我试图在附加组件上使用Stanford Javascript Crypto Lib,但当我将其代码粘贴到模块上时遇到问题。导出功能的问题

我做了一个试验项目位置:

https://builder.addons.mozilla.org/package/209559/latest/

主要函数调用是在teste.js describeds的功能。

如果我离开仅此代码对teste.js

exports.generateKey = generateKey; 
/*** 
* Function test (I know that I could not to generate a constant key) 
***********************************************/ 
function generateKey(){ 
    return 123455; 
} 

主要功能(在main.js)发现功能generateKey,并显示在控制台中号123455。

但是,当我加入斯坦福库的代码,它停止工作,我得到了如下错误

TypeError: t.generateKey is not a function

有人能帮助我吗?

非常感谢。

回答

0

的密码库overrides您的产品出口自己的产品出口:

if(typeof module != 'undefined' && module.exports){ 
    module.exports = sjcl; 
} 

我还不能找到在哪里,如果是记录,但每个SDK模块中有一个module对象,一个属性,它是module.exports这开始作为exports的别名。

因此,未修改的加密库已经是可加载的,并且完全覆盖了您之前添加的exports

我建议不接触密码库源和是使用它(例如命名库sjcl.js和使用它像require("./sjcl").encrypt(...))并限定在main.js或一个全新的模块包装器功能,如generateKey

+0

谢谢! 我创建了另一个文件(名为_sjcl.js_),就像你获得的一样。 –