我试图做以下事情
为了做1和2,我将jbuilder与opam文件一起使用。现在所有这些都非常适合轻松编译我的库,但是我在repl中测试它时遇到了麻烦。
我目前的方法是启动一个repl并使用#load "_build/default/<name-of-main-library-module>.cma
。这已成功执行,因为我已经#require
编辑了我的依赖项。但是,这实际上似乎不会影响repl中的绑定集。 MainLibraryModule
既不作为模块绑定,也不会引入模块名称不合格的公共API。
我在这里做了一些明显错误的事情,我应该如何加载这个cma
文件,以便我可以使用我的库。如果有一个更好的方法来完成任务3(不以任何方式修改全局状态),我也可以这样做。
答案 0 :(得分:2)
为了使用.cma
文件中定义的模块,REPL需要能够找到相应的.cmi
文件,这些文件是库中模块的编译接口文件。
这是#directory <path_to_cmis>;;
指令的用例,它将目录<path_to_cmis>
添加到可能包含cmi文件的目录列表中。
在您的情况下,您需要在之前添加此指令#directory
#load
指令:
#directory "build/path_to_cmis";;
#load "build/path_to_cma";;
答案 1 :(得分:1)
使用res.render('pages/success', {holedata: [] });
时,加载模块的顶级名称不会作为REPL的顶级名称引入。要获得此效果,您需要#load
模块。
open
您是如何检查模块名称的绑定的?