浏览器将两个文件打包成包后“XXX.foo 不是函数”

问题描述

我使用 browserify 通过以下命令将两个 java 脚本文件捆绑为一个

browserify X1.js X2.js --standalone XXX > bundle.js

X1.js 包含以下功能

function foo() {
   console.log("something")
}

我就是这样导出的:

module.exports = {foo: foo};

我想要做的是在我的 index.html 中调用函数,如下所示:

XXX.foo()

它似乎可以识别“XXX”模块,但不能识别“foo”功能。为什么会这样?

未捕获的类型错误:XXX.foo 不是函数

解决方法

您忘记了 foo 的“ ”:

module.exports = {'foo': foo};

然后,您可以像以前一样调用 foo 函数:

XXX.foo();

否则,您可以执行以下操作:

exports.foo = foo;