在ClojureScript项目中更改宏后重新编译该项目不会重新编译使用这些宏的命名空间 - 而是使用缓存版本。
重现
1. 编译一个项目,例如 clj -m cljs.main --optimizations advanced -c app.core
2. 修改一个app.core
所依赖的宏,比如说app.macros
3. 重新运行相同的编译
app.core
没有获取到app.macros
中的更改 - 而是必须删除out
目录或修改app.core
的内容,以便它能够正确重新编译。