【问题标题】:Can not access functions between modules bundled into the same Browserify bundle?无法访问捆绑到同一个 Browserify 包中的模块之间的功能?
【发布时间】:2018-07-14 01:18:49
【问题描述】:

前言:我已经阅读了几篇关于尝试从 not 包中的代码访问 Browserify 包中的代码的 SO 帖子。我试图这样做。我在访问捆绑到同一个包中的模块之间的代码时遇到问题。

我使用 Browserify 将 Node.JS v.8.11.1 项目中的两个 Javascript 文件捆绑到一个 独立 包中:

browserify solidity-helpers-misc.js create-game-page-support.js --standalone browserified  > bundle.js

很遗憾,来自 create-game-page-support.js 文件的代码无法访问 solidity-helpers-misc.js 文件中的代码。任何此类引用都是未定义。我在 Chrome 调试器中检查了 browserified 命名空间,它已被定义,但仅使用基本的 Javascript 对象函数集,如:toString() 等,仅此而已。

例如,此代码位于 bundle.js 中,来自 solidity-helpers-misc.js 文件:

function getNonceViaUuid(){
    return uuidv4();
}

// Yes.  Export the code so it works with require().
module.exports =
    {
        getNonceViaUuid: getNonceViaUuid,
    };


}).call(this,require('_process'),"/../../../common/solidity-helpers-misc.js","/../../../common")

但是,当我尝试从 bundle.js 中源自 create-game-page-support 的代码中访问 getNonceViaUuid() 函数时.js 如此代码所示sn-p:

$('#create-game-btn').click(
    function(e)
    {
        console.log("Testing access to browserified file.  Remember to add sourcemap later.");

        var nonce = getNonceViaUuid();
        ...

调试器暂停并出现异常,抱怨 getNonceViaUuid未定义。正如我所说,我检查了调试器中的 browserified 命名空间,它没有附加 getNonceViaUuid

注意,第一个文件 solidity-helpers-misc.js 是一个使用 require() 语句的服务器端文件。第二个文件 create-game-page-support.js 是一个客户端代码模块,我想访问第一个文件,但在客户端。这就是我尝试使用 Browserify 的原因,因此我可以在服务器和客户端上使用第一个文件中的代码。

如何访问捆绑在同一个 Browserify 包中的模块之间的功能?

【问题讨论】:

    标签: javascript node.js bundle browserify


    【解决方案1】:

    问题是我不需要客户端中的服务器端模块 solidity-helpers-misc.js 模块 module create-game-page-support.js时间>。通过将以下内容添加到我的客户端模块的顶部:

    var solidty_helpers_misc = require('../../../common/solidity-helpers-misc');
    

    然后使用该模块为 getNonceViaUuid() 调用添加前缀:

    ar nonce = solidty_helpers_misc.getNonceViaUuid();
    

    然后它起作用了。回想起来,在客户端使用 require() 的“外星人”感觉是最让我感到困惑的地方。

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      相关资源
      最近更新 更多