如何将一个模块的所有内容包含在另一个模块中(在 Electron JS 中)

How to include all the content of a module in a different one (in Electron JS)

我正在尝试为 javascript 中的某些比特币框架编写后端。我对这门语言还很陌生。但是我用它做了几个项目。

我正在查看 https://coinb.in/ atm。如果您查看 source @index 文件,它们包含如下脚本:

<script type="text/javascript" src="js/qrcode.js"></script>
<script type="text/javascript" src="js/qcode-decoder.min.js"></script>
<script type="text/javascript" src="js/jsbn.js"></script>
<script type="text/javascript" src="js/ellipticcurve.js"></script>

椭圆曲线是一个匿名函数,它将其所有方法附加到浏览器中的 window 对象。我的项目是在 Electron JS 中,所以我用 global.EllipticCurve 模拟了这个。然而,这并不重要。重要的是,例如 jsbn.js 不是匿名函数,而且它太大而无法重构。 jsbn.js 中的函数在 ellipticcurve.js 中可见,因为它是在它之前导入的。我想知道如何在 Electron JS 中实现这种效果,我不能只做 require('./jsbn.js'),因为那样会给我未定义的。有没有办法 module.exports 一切? (将 jsbn.js 的所有内容包含在 ellipticcurve.js 中也可以,这就是我设法使其工作的方式,但这会使代码非常混乱)

通过检查 jsbn 最旧版本找到了执行此操作的方法。整个代码包含在匿名函数中,结尾如下:

if (typeof exports !== 'undefined') {
    exports = module.exports = BigInteger;
} else {
   this.BigInteger = BigInteger;
}
}).call(this);

虽然我不明白typeof exports !== 'undefined'