首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用shimming、第三方脚本和相互依赖关系

如何使用shimming、第三方脚本和相互依赖关系
EN

Stack Overflow用户
提问于 2015-06-23 20:46:25
回答 1查看 139关注 0票数 1

我刚开始使用RequireJS,我正试图找出适合第三方的、相互依赖的脚本。具体来说,我正在尝试导入斯坦福密码脚本。

基本上,该套件由核心(jsbn.js、jsbn2.js、basic 64.js、rng.js和prng4.js)、基本RSA脚本(rsa.js)和扩展的RSA脚本(rsa2.js)组成。

rsa.js定义全局变量对象RSAKey,rsa2.js引用它。

代码语言:javascript
复制
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未定义“的错误。以下是我的希姆:

代码语言:javascript
复制
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)

有什么想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-24 07:37:48

您的基本设置是正确的,除了两件事:

  1. (真的很重要!)您必须省略.js扩展!
  2. 您可能忽略了脚本之间的确切依赖关系。

在进行了一些实验并阅读了脚本顶部的注释之后,工作配置如下:

代码语言:javascript
复制
  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'
        }
    }
  });

看看这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31013191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档