ClojureDart:cljd 执行错误。compiler/load-libs-info (compiler.cljc:126)。阅读时的 EOF

ClojureDart: Execution error at cljd.compiler/load-libs-info (compiler.cljc:126). EOF while reading

我在将 flutter cookbook 翻译成 ClojureDart 时遇到了这个错误。 我是这样初始化项目的:

$ mkdir -p src/samples && touch src/samples/tabs.cljd
$ clj -M -m cljd.build init --dart samples.tabs

然后我这样编译:

$ clj -M -m cljd.build flutter

我做错了什么?

我的 .clojuredart/libs-info.edn 文件是空的,这就是它导致 EOF 的原因。 这里的错误不是来自代码本身,而是来自我初始化项目的方式。 而不是做:

$ clj -M -m cljd.build init --dart samples.tabs

我应该刚刚完成:

$ clj -M -m cljd.build init samples.tabs

没有 --dart.

有两种方法可以更正此问题。

  1. 使用正确的命令重新开始
  2. 将分析器的输出重定向到 libs-info.edn。 如果你 运行 ls 进入 .clojuredart,你会注意到有两个文件:analyzer.dartlibs-info.edn。 ClojureDart 使用分析器来生成 dart 代码。 运行:
$ dart .clojuredart/analyzer.dart > .clojuredart/libs-info.edn

它应该有效,就像它对我一样!