我已经将eliom更新到通过opam安装的最新版本(5.0.0),但它失败了。我已经用 4.02.1 和 4.02.3 编译器尝试了这两种方法,但是,它无法编译基本的 eliom:
eliomdep -client -ppx -package lwt.ppx -package js_of_ocaml.deriving.ppx -package js_of_ocaml.ppx mysite.eliom > _deps/mysite.eliom.client
Fatal error: exception Fl_package_base.No_such_package("js_of_ocaml.deriving.ppx", "")
make: *** [_deps/mysite.eliom.client] Erreur 2
知道吗?
您似乎缺少 ppx 派生插件。这是一个可选的依赖项。
opam install ppx_deriving
您使用的是基本模板吗?我不记得其中有任何使用 ppx 派生。
看起来 eliom-stillery 生成的 Makefile.options 中存在一个缺陷:CLIENT_PACKAGES最初等于
初始 Makefile.options
...
# OCamlfind packages for the server
SERVER_PACKAGES := lwt.ppx js_of_ocaml.deriving.ppx
# OCamlfind packages for the client
CLIENT_PACKAGES := lwt.ppx js_of_ocaml.deriving.ppx js_of_ocaml.ppx
...
更正了 Makefile.options :
...
# OCamlfind packages for the server
SERVER_PACKAGES := lwt js_of_ocaml.deriving
# OCamlfind packages for the client
CLIENT_PACKAGES := lwt js_of_ocaml.deriving js_of_ocaml
...
这是由于未安装 ppx-deriving.3.0。(感谢Drup)