2014-11-24 21 views
1

我的Clojurescript項目以三個文件開頭 - 一個index.html,一個css文件,手寫的.cljs代碼。如何設置cljsbuild將未編譯的文件移動到特定的文件夾?

當cljsbuild將.cljs文件構建到.js文件中時,它會將它放在任意位置。我也想在那裏移動index.html和css文件。

我想這樣做的原因是我可以有多個配置文件,並且可以輕鬆加載兩者。我有一個dev配置文件,其中JavaScript未優化,並且release配置文件可以優化javascript。但是在它們之間切換很煩人 - 我必須以某種方式採用單個現有的index.html文件並更改它指向的JavaScript文件。 (如果我有兩個index.html文件,每個文件指向一個不同的JavaScript文件,進行更改,以一個HTML文件意味着複製在其他的變化)

我寧願有兩個版本:

dev構建構建到project/dev

release構建版本爲project/release

這兩個版本都會有index.html,style.csscompiled.js文件。有什麼辦法可以做到這一點嗎?

回答

1

爲了做到這一點,我認爲您將需要額外的工具到您的項目。

前端工具是一個艱難的世界,有許多替代方案和工作流程,每個都有其折衷。

最簡單的方法是創建一個makefile並在需要複製/編譯HTML和CSS時調用它。這應該讓你開始,但很難在Windows上工作。

對於已建立的跨平臺解決方案,我會考慮將grunt集成到工作流程中。有了grunt,你可以輕鬆地將文件觀察者複製/編譯你的HTML和CSS到你的文件夾,甚至可以縮小/分割文件。權衡是一個陡峭的學習曲線和項目的初始設置。

有很多選項,但沒有我知道的任何cljs特定工具。

+0

感謝您的意見。這種情況是什麼,但不是最理想的 - 用'lein cljsbuild auto',我不必停下來運行一個構建;這是一個恥辱,我不得不添加額外的工具或發佈版本有一個完全不同的工作流程。 – zck 2014-12-08 20:03:52

+0

你需要做的是有兩個工具監視(cljsbuild查看.cljs文件和(make/grunt/...)查看html/css/less/js文件)。如果你只是想在cljsbuild重新編譯時執行某些東西,那麼你可以使用':notify-command'(但不會使cljsbuild文件監視html和css文件,它可能足夠,很難)。這是一個鏈接到示例conf的鏈接:https://github.com/emezeske/lein-cljsbuild/blob/70a0d85782182a09c1116049b09a5f8ca5a7bd30/sample.project.clj#L73-L78 – Joaquin 2014-12-08 20:21:24

相關問題