是否可以在 BuckleScript 中不导出模块?

Is it possible to not export a module in BuckleScript?

是否可以不导出某些不应由包使用者直接使用的内部模块?

您可以在 bsconfig.json 中指定一个未记录的选项来将您要导出的模块列入白名单,但据我了解,它也会隐藏别名模块,因此仅对隐藏真正的内部有用模块,还有一点 error-prone 因为它是一个白名单。因此,我自己没有使用过它。但是如果你想试试,你可以这样指定"public"

{
  ...
  "sources": [{
    "dir": "src",
    "public": ["ModuleA", "ModuleB"]
  }]
  ...
}

它列在 bsconfig.json schema 中,顺便说一句,还有有用的评论:

Default: export all modules. It is recommended for library developers to hide some files/interfaces