Node.JS新手:如何导出功能并在browserify模块中使用它们?

问题描述

假设我有这个simple.js文件

function Square(x)
{
  return x * x;
}

function Cube(x) 
{ 
  return x * x * x; 
}

请注意,这段代码本身并没有做任何事情,只是定义了这两个简单的函数

现在我想browserify这个文件,所以我得到一个.js文件,可以将其包含在常规HTML文件中,然后在其中使用SquareCube函数

我的问题是我不了解module.exportsexports的工作方式,或者它应该确切表示或包含的内容

我的目标是能够在example.html文件中做到这一点:

<!DOCTYPE html><html><head><Meta charset='utf-8'>
<script src='myfunctions.js'></script>
<script>
var x = Square(3);
var y = Cube(5);
</script>
</head><body></body></html>

但是,如果我这样做
browserify simple.js > myfunctions.js
则上述脚本显然不起作用,则SquareCube函数未定义。

我知道我必须以某种方式导出这些函数,但是我不知道如何,而且我也不知道如何从HTML脚本中解决它们。

我猜我必须做这样的事情:

<!DOCTYPE html><html><head><Meta charset='utf-8'>
<script src='myfunctions.js'></script>
<script>
const myFuncs = ...???... // not sure what this should be?!
var x = myFuncs.Square(3);
var y = myFuncs.Cube(5);
</script>
</head><body></body></html>

我还尝试了在--s SomeSymbolName行中使用browserify,但是无法正常工作。

什么是正确的方法

解决方法

经过一番摸索后发现它,我将此行添加到simple.js中:

module.exports = { 'Square':Square,'Cube':Cube };

然后我将browserify与这样的独立符号一起使用:

browserify simple.js --standalone myFuncs > myfunctions.js

现在我可以在HTML文件中包含myfunctions.js,并像下面这样在JavaScript中使用这些函数:

var x = myFuncs.Square(3);
var y = myFuncs.Cube(5);