gpt4 book ai didi

javascript - 无法访问 bundle 到同一 Browserify bundle 中的模块之间的功能吗?

转载 作者:行者123 更新时间:2023-12-03 01:30:26 25 4
gpt4 key购买 nike

前言:我读过几篇有关尝试从 bundle 中不存在的代码访问 Browserify bundle 中的代码的帖子。我试图这样做。我在访问 bundle 在一起到同一个包中的模块之间的代码时遇到问题。

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

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")

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

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

var nonce = getNonceViaUuid();
...

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

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

如何跨同一个 Browserify bundle 中 bundle 在一起的模块访问功能?

最佳答案

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

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

然后在 getNonceViaUuid() 调用前加上该模块的前缀:

ar nonce = solidty_helpers_misc.getNonceViaUuid();

然后就成功了。回想起来,在客户端使用 require() 的“陌生”感觉是一开始让我绊倒的原因。

关于javascript - 无法访问 bundle 到同一 Browserify bundle 中的模块之间的功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51334426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com