JS,Browserify:未定义函数

我有表示的文件:

-js/
    - calc.js
    - tool.js
-index.html

calc.js是一个节点模块,结构如下:

module.exports = {
   calculate: function() {...},
   getPrecision: function() {...}
}

和工具.js使用require并增加了一些函数,如:

const fpcalc = require('./fpcalc');

function changeState() {
//some code using fpcalc
}
我使用Browserify生成bundle.js,并将其添加为脚本src。 我在HTML页上的一个按钮是使用onclick=changeState()。点击后,我得到

ReferenceError: changeState is not defined
at HTMLAnchorElement.onclick

为什么?有没有其他方法可以让它起作用?


解决方案

您的工具.js中不会导出"changeState"函数。 这意味着它仅在bundle.js内部可见,而在外部不可见。

看看这个:https://makerlog.org/posts/creating-js-library-builds-with-browserify-and-other-npm-modules

它向您展示了如何在Java脚本中将您的代码公开到全局命名空间。

相关文章