我有两个文件:a.js
和b.js
。
a.js
:
console.log(require("./b.js")());
module.exports = function () {
console.log("Hello Mars!");
};
b.js
:
module.exports = function () {
console.log("Hello World");
};
通过捆绑这些文件,我获得了c.js
:
browserify a.js -o c.js
我希望c.js
导出一个函数(在调用时打印Hello Mars
)。通过节点进程中的require
c.js
,我得到一个空对象。
$ node
> c = require("./c.js")
Hello World
undefined
{}
> c()
TypeError: c is not a function
at repl:1:1
at REPLServer.defaultEval (repl.js:252:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:417:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:210:10)
at REPLServer.Interface._line (readline.js:549:8)
at REPLServer.Interface._ttyWrite (readline.js:826:14)
由于node
已经有module
个对象,如何告诉Browserify将此module
对象用于主文件,因此我将获得Hello Mars
函数在节点中使用module.exports
时require
我检查了文档,但我没有找到任何选项......也许我想念一些东西。
我只想在节点进程中捆绑一个模块(具有依赖项)和require
。
答案 0 :(得分:1)
您正在寻找以下选项:
- standalone -s
为提供的导出名称生成UMD包。 此捆绑包与其他模块系统一起使用并设置名称 如果没有找到模块系统,则作为全局窗口给出。
您可能还想传递<button id="mybutton">Click me</button>
...
<script>
(function(){
var images = [ ... ];
mybutton.onclick = function(){ loadImages(images); };
})();
</script>
选项,以关闭特定于节点的功能的转换。