什麼是 descjop ?
descjop
是一個 lein
的模板,使用這個模板生成的專案包括了符合要求的目錄結構,以及完備的依賴。
可以方便的開發基於 cljs/om
以及 electron
的桌面應用程式。
如果使用 descjop
使用非常簡單,只需要一句命令:
$> lein new descjop YOUR_APP_NAME +om // +om 是新增 om 支援
lein
會更據模板自動生成目錄結構,檔案。
目錄結構
. +-- README.md +-- app | +-- index.html // entry html file | +-- js | | +-- cljsbuild-main.js // compiled JavaScript | | +-- externs.js | | +-- main.js | +-- package.json // for Desktop app +-- package.json // for Compile +-- project.clj // compile settings desktop app +-- src | +-- NAMESPACE | +-- core.cljs // ClojureScript for Electron in here +-- src_front +--NAMESPACE_om
直接使用官方的圖。非常清晰明瞭拉。
開始開發
使用命令:
$> lein trampoline figwheel frontend
上面的命令可以啟動一個 figwheel
.
figwheel
會監控 (watch) src_fontend
名稱空間中檔案的改動,並在每次修改時重新編譯,實時顯示到介面上。所以我們的主要開發工作都是在 src_forntend
名稱空間中完成的
figwheel
的好。不用過是不會了解的。大家都去用用看吧。
當 figwheel
啟動之後,程式就在等待我們的客戶端執行起來。事不宜遲,就讓我們開始執行應用吧。
執行應用
$> npm install -g grunt-cli #安裝 grunt-cli 命令列工具。當然裝過就不用裝了
$> npm install #安裝需要的 npm packages
$> grunt download-electron # 下載 electron 的執行環境。
$ lein externs > app/js/externs.js
編譯下啟動需要的 cljs 檔案
$ lein cljsbuild once
執行嘍,走起!
$ ./electron/electron app
以上執行完之後就可以看到視窗出現了,並且列印出了大大的 Hello OM