问题描述
function Square(x)
{
return x * x;
}
function Cube(x)
{
return x * x * x;
}
请注意,这段代码本身并没有做任何事情,只是定义了这两个简单的函数。
现在我想browserify
这个文件,所以我得到一个.js文件,可以将其包含在常规HTML文件中,然后在其中使用Square
和Cube
函数
我的问题是我不了解module.exports
或exports
的工作方式,或者它应该确切表示或包含的内容。
我的目标是能够在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
则上述脚本显然不起作用,则Square
和Cube
函数未定义。
我知道我必须以某种方式导出这些函数,但是我不知道如何,而且我也不知道如何从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);