【问题标题】:How do I access variables/functions in bundle.js如何访问 bundle.js 中的变量/函数
【发布时间】:2020-02-14 11:18:33
【问题描述】:

你好,你如何访问 bundle.js 中的变量?

我正在尝试制作客户端 javascript 并使用变量和函数,但在 index.html、chrome-console 中调用它们时遇到问题。

我使用 browserify 将我的 script.js 捆绑到 bundle.js 中(这有助于我处理浏览器无法识别的 'require'),但是当我尝试访问 script.js 中定义的变量或函数时,现在捆绑.js 我得到例如未捕获的 ReferenceError: xx 未定义

有什么帮助吗?还是我不允许在客户端 html/scripts 上使用节点包?

编辑:做了一些谷歌搜索,发现这个人说我应该使用 XHR / AJAX "require" is not defined error- javascript

edit2: window.xx = xx 好像是临时解决办法

【问题讨论】:

  • 您是否在 html 中使用脚本标签导入了脚本?例如:<script src="bundle.js"></script>
  • 是的,我已经导入了我的脚本!
  • 我认为this is a duplicate 但问题还不清楚。

标签: javascript npm browserify


【解决方案1】:

如果我错了,请纠正我,因为我没有使用 Browserify(我使用过其他捆绑/处理工具),但据我了解,Browserify 将原始源文件中的所有代码捆绑到 bundle.js文件。在 bundle.js 中是一个无法从外部访问的范围(除非可能专门导出,但那是另一回事了)。

例如:

// source.js
var test = require('./some-file-with-an-empty-object.js');
// Pseudo code example of bundle.js
;(function(){
   var test = {};
})();

由于这个IIFEvar test 的范围受到限制,外部脚本或window 无法访问。

简而言之,在源文件中做你需要做的事情,而不是在它之外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多