更改一个CLJC文件会导致完全重新编译

时间:2017-01-18 21:34:31

标签: clojurescript

在我正在进行的一个相当大的项目中,我有一个单独的源文件夹,其中包含.CLJC文件,这些文件在前端(Clojurescript)和后端(Clojure)之间共享。

我注意到在CLJC文件中进行微不足道的更改(例如,添加一个空白行)会导致重建所有或大部分CLJC + Clojurescript文件(由编译器列出:verbose为true)。这会导致我的机器延迟约45秒。奇怪的是,这甚至发生在CLJC不包含任何功能时,并且不需要任何其他CLJS / CLJC文件......

有人知道可能导致这种行为的原因吗?我的项目文件很标准,我使用最新版本(CLJS 1.9.293,lein-cljsbuild 1.1.5甚至1.1.6-SNAPSHOT)。

不幸的是,为了测试这个问题,甚至不能暂时从项目中删除这些特性。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题:

这个问题不是由我的项目的细节引起的 - 它发生在每个项目中,因为可能是CLJ或CLJC文件包含宏(当更改时)导致CLJS文件被隐式修改的情况。 lein-cljsbuild因此重新编译所有CLJS文件。

有关背景讨论,请参阅https://github.com/emezeske/lein-cljsbuild/issues/345

我已在https://github.com/emezeske/lein-cljsbuild/issues/457

提交了错误报告