【发布时间】: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