假设我有以下f#模块:
module Sample =
let Add x y = x + y
let Subtract x y = x - y
如何配置寓言或Webpack,以便在将webpack生成的bundle.js文件包含到index.html中时,可以从javascript调用模块Sample的函数,如下所示:
<script>
var myResult = Sample.Add(2,4)
</script>
谢谢!
答案 0 :(得分:0)
首先,您需要设置webpack来生成一个“库”。
在webpack.config.js中,您的output
节点应如下所示:
output: {
path: resolve('./output'),
filename: '[name].js',
libraryTarget: 'var',
library: 'EntryPoint'
},
然后,为了公开一个干净的API以从JavaScript进行调用,您应该使用一个接口。
type Sample =
abstract Add : int -> int -> int
abstract Subtract : int -> int -> int
let private add x y = x + y
let api =
{ new Sample with
member __.Add x y = add x y // You can call a local function
member __.Subtract x y = x - y // You can implement the function directly in the interface
}
然后从JavaScript中您可以执行以下操作:
EntryPoint.api.Add(1, 2)
EntryPoint.api.Subtract(1, 2)