Browserify 不适用于函数?

Browserify doesnt work with function?

您好,我在使用 browserify 时遇到问题,我browserify main.js > bundle.js 一切正常,直到它发挥作用。现在我得到:

Uncaught TypeError: search is not a function
at HTMLButtonElement.onclick (index.html:30)

这是我的 main.js:

function search() {
[..] trigger stuff
}

在我的 html 文件中有:

<input type="text" id="search" placeholder="Search">
<button class="ui button" onclick="search()">

其他只是设计和标题。

如果你想导出一个函数以便从包外部调用(例如,在 onclick 处理程序中),最简单的做法是这样的:

function search() {
  ...
}
window.search = search;

基于 window 的简单解决方案的替代方案是 --standalone option。在你的 main.js 中,你会做这样的事情:

function search() {
  ...
}
exports.search = search;

然后您将使用如下命令构建捆绑包:

browserify main.js --standalone MyApp > bundle.js

您的 onclick 处理程序将是:

<input type="text" id="search" placeholder="Search">
<button class="ui button" onclick="MyApp.search()">