我刚开始使用RequireJS,我正试图找出适合第三方的、相互依赖的脚本。具体来说,我正在尝试导入斯坦福密码脚本。
基本上,该套件由核心(jsbn.js、jsbn2.js、basic 64.js、rng.js和prng4.js)、基本RSA脚本(rsa.js)和扩展的RSA脚本(rsa2.js)组成。
rsa.js定义全局变量对象RSAKey,rsa2.js引用它。
function RSAKey() {
this.n = null;
this.e = 0;
this.d = null;
this.p = null;
this.q = null;
this.dmp1 = null;
this.dmq1 = null;
this.coeff = null;
}我以一种我认为是正确的方式设置了我的shim,但是在rsa2.js中我得到了"RSAKey未定义“的错误。以下是我的希姆:
require.config({
paths: {
'jsbn': "../StanfordRSA/jsbn.js",
'jsbn2': "../StanfordRSA/jsbn2.js",
'base64': "../StanfordRSA/base64.js",
'rng': "../StanfordRSA/rng.js",
'prng4': "../StanfordRSA/prng4.js",
'rsa': "../StanfordRSA/rsa.js",
'rsa2': "../StanfordRSA/rsa2.js"
},
shim: {
'rsa': {
deps: ['jsbn', 'jsbn2', 'base64', 'rng', 'prng4'],
exports: "RSAKey"
},
'rsa2': {
deps: ['rsa']
}
}
});因此,我的理解是,如果我在我的一个rsa2模块中将‘RequireJS’设置为一个需求,它会看到rsa2依赖于rsa,而rsa依赖于内核,并导出了与所发生的不一样的RSAKey...But,似乎要么rsa没有加载,要么没有正确加载。(请注意,所有这些都使用原始脚本标记。我正在尝试将一个已经存在的、已经在运行中的webapp转换为RequireJS)
有什么想法?
发布于 2015-06-24 07:37:48
您的基本设置是正确的,除了两件事:
.js扩展!在进行了一些实验并阅读了脚本顶部的注释之后,工作配置如下:
require.config({
paths: {
'jsbn': "../StanfordRSA/jsbn",
'jsbn2': "../StanfordRSA/jsbn2",
'base64': "../StanfordRSA/base64",
'rng': "../StanfordRSA/rng",
'prng4': "../StanfordRSA/prng4",
'rsa': "../StanfordRSA/rsa",
'rsa2': "../StanfordRSA/rsa2"
},
shim: {
'rng': {
deps: ['prng4']
},
'jsbn2': {
deps: ['jsbn']
},
'rsa': {
deps: ['jsbn', 'rng'],
exports: 'RSAKey'
},
'rsa2': {
deps: ['rsa', 'jsbn2'],
exports: 'RSAKey'
}
}
});看看这里。
https://stackoverflow.com/questions/31013191
复制相似问题