0

由于js_of_ocaml. 为了构建 JavaScript 文件,我使用了以下命令:

js_of_ocaml --wrap-with-fun=stringextCma --pretty --no-cmis \
-I ~/.opam/learn-ocaml/lib/stringext \
~/.opam/learn-ocaml/lib/stringext/stringext.cma \
-o stringext.cma.js

我将脚本链接到 index.html 文件中。但是,当我尝试使用该函数stringextCma(window)在 Firefox 或 Chromium 控制台中导入它时,它会显示以下错误:

TypeError: runtime is undefined

我找不到纠正它的方法。其他人是否有此错误并找到解决此问题的方法?

编辑

我想要达到的目标与这个问题几乎相同。我尝试遵循相同的步骤,包括将 javascript 代码包装到一个函数中。

我想在 JavaScript 中编译一些 opam 库并将它们作为 javascript 文件(预编译)加载到 learn-ocaml 顶层。问题是,当我加载脚本时,我无法将它加载到顶层,因为我有不同的错误。首先,我不能使用 #load_js 指令,因为 load_script 函数是未知的,当我尝试导入库(此处为 stringext)时,我遇到了运行时问题......

我不知道这是否更清楚...

4

1 回答 1

0

独立库在这里意味着什么?当您将 cma 文件传递​​给 js_of _ocaml 时,只会编译 cma 文件的内容,而不是依赖项,而不是运行时。可以使用“js_of_ocaml build-runtime”生成运行时文件,但它可能不是您需要的。另外,我不明白你为什么要通过 wrap-with-fun 和 no-cmis。

要将代码导出到 JavaScript,通常会构建一个字节码程序并将整个程序编译为 JavaScript。见http://ocsigen.org/js_of_ocaml/3.6.0/manual/rev-bindings

于 2020-06-12T17:09:03.237 回答