Clojure China

代码生成的文件对导致 figwheel 读取文件出错

#1

使用 Figwheel 中间遇到很多次 ns 没有定义的报错,
后来猜想是可能因为我的代码是用 lein plugin 生成的, 可能 figwheel 读取不对
https://twitter.com/jiyinyiyong/status/691641288190353409
在 Twitter 询问了下作者, 看上去可能性很大, 同时手动改 Clojure 文件就是好的

也就是说, Sublime Text 保存文件时的事件, Figwheel 正确处理
而用 Clojure 中的 with-open .write 代码写入文件时, Figwheel 可能拿到空白的文件

想问下有什么方案可以避免这样的情况吗?
我的 plugin 对应的代码是这样的:
https://github.com/Cirru/lein-cirru-sepal/blob/master/src/leiningen/cirru_sepal.clj#L24

#2

先找了一个投机取巧的办法, 先创建一个其他位置文件, 然后 rename 到那个文件名… - -!

#3

这里顺便给个其他建议, cljs 最好不要单一级的 namespace。
我有一次一个文件 (ns util) cljs 编译报错, 找了半天, 最后改来该去
发现namespace 一级的时候, 出现这个问题。 改成 2+ 级就没有问题了。

#4

奇怪的事情… Java 当中也是这样吗?