使用leiningen构建ClojurScript项目时处理资源(复制)

时间:2014-11-30 07:38:46

标签: clojure leiningen clojurescript

我刚刚开始使用ClojureScript,我想将所有CSS文件收集到一个文件夹(out/css)中。我发现leiningen-less并使用以下配置将已编译的CSS文件放入正确的位置:

:less {:source-paths ["src/less"] :target-path "out/css"}

我找不到任何关于如何处理普通CSS文件的文档(例如用于重置默认值的文件css/reset.css)。基本上我想要相当于cp css/*css out/css

我确实找到了lein-resource,但它确实比我要求的更多(通过stencil传递内容),更重要的是通过我UnsupportedOperationException上的 :resource {:resource-paths ["css" {:target-path "out/css"}]} 我认为会是有效的配置:

{{1}}

请启发我!

2 个答案:

答案 0 :(得分:1)

对于您的特定用例,只需将reset.css重命名为reset.less。我应该能够毫无问题地阅读CSS。

对于更高级的前端工具,可以考虑添加类似make / grunt /等的东西。更复杂但功率更大灵活性。

答案 1 :(得分:0)

我认为更好更简单的解决方案是编写一个使用clojure.java.io库函数并将它们集成到with lein-less "compiler" fork的函数,这是我的内部函数提议:

(defn your-fn[] 
  (remove-folder "./out") ;; => you have to do how to make that fn following io lib doc
  (copy-folder "./css ./out") ;; ;; => you have to do how to make that fn following io lib doc
  (run-compiler  :javascript
                 {:project-root "your-project-root/"
                  :source-paths ["less"]
                  :target-path "out"})))

PS:请注意,你需要从你的clojurescript编译过程中调用这个fn,BTW我不知道是否有办法:)