読者です 読者をやめる 読者になる 読者になる

clojure で Electoron できる descjop をやってみようと思った その4.6

clojure Electron descjop

原因はなんか、lein はフォルダ名のハイフンをアンダーバーにして名前空間にしてるんだけど、何かがどうかなってハイフンのままになってたらしい:

gist.github.com

dev の方のハイフンをアンダーバーに修正して lein cljsbuild once してみた:

% lein cljsbuild once
Compiling ClojureScript...
Compiling "app/dev/js/front.js" from ["src_front" "src_front_profile/hello_om_based2_front/dev/"]...
Successfully compiled "app/dev/js/front.js" in 5.037 seconds.
Compiling "app/prod/js/cljsbuild-main.js" from ["src"]...
Successfully compiled "app/prod/js/cljsbuild-main.js" in 7.43 seconds.
Compiling "app/prod/js/front.js" from ["src_front" "src_front_profile/hello-om-based2_front/prod"]...
Compiling "app/prod/js/front.js" failed.
java.io.FileNotFoundException: src_front_profile/hello-om-based2_front/prod (そのようなファイルやディレクトリはありません)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at clojure.java.io$fn__9189.invoke(io.clj:229)
    at clojure.java.io$fn__9102$G__9095__9109.invoke(io.clj:69)
    at clojure.java.io$fn__9163.invoke(io.clj:165)
    at clojure.java.io$fn__9115$G__9091__9122.invoke(io.clj:69)
    at clojure.java.io$reader.doInvoke(io.clj:102)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at cljs.analyzer$parse_ns$fn__2145.invoke(analyzer.cljc:2721)
    at cljs.analyzer$parse_ns.invoke(analyzer.cljc:2706)
    at cljs.analyzer$parse_ns.invoke(analyzer.cljc:2697)
    at cljs.compiler$find_source.invoke(compiler.cljc:1415)
    at cljs.closure$eval5084$fn__5087.invoke(closure.clj:508)
    at cljs.closure$eval5020$fn__5034$G__5011__5041.invoke(closure.clj:394)
    at cljs.closure$eval5104$fn__5107.invoke(closure.clj:528)
    at cljs.closure$eval5020$fn__5034$G__5011__5041.invoke(closure.clj:394)
    at cljs.build.api$inputs$reify__5669$fn__5672.invoke(api.clj:174)
    at clojure.core$map$fn__4553.invoke(core.clj:2622)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:507)
    at clojure.core$seq__4128.invoke(core.clj:137)
    at clojure.core$apply.invoke(core.clj:630)
    at clojure.core$mapcat.doInvoke(core.clj:2660)
    at clojure.lang.RestFn.invoke(RestFn.java:423)
    at cljs.build.api$inputs$reify__5669._find_sources(api.clj:174)
    at cljs.closure$build$fn__5576.invoke(closure.clj:1862)
    at clojure.lang.Atom.swap(Atom.java:37)
    at clojure.core$swap_BANG_.invoke(core.clj:2238)
    at cljs.closure$build.invoke(closure.clj:1856)
    at cljs.build.api$build.invoke(api.clj:207)
    at cljs.build.api$build.invoke(api.clj:201)
    at cljsbuild.compiler$compile_cljs$fn__5698.invoke(compiler.clj:60)
    at cljsbuild.compiler$compile_cljs.invoke(compiler.clj:59)
    at cljsbuild.compiler$run_compiler.invoke(compiler.clj:168)
    at user$eval5835$iter__5871__5875$fn__5876$fn__5894.invoke(form-init6877095580223984770.clj:1)
    at user$eval5835$iter__5871__5875$fn__5876.invoke(form-init6877095580223984770.clj:1)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.Cons.next(Cons.java:39)
    at clojure.lang.RT.next(RT.java:674)
    at clojure.core$next__4112.invoke(core.clj:64)
    at clojure.core$dorun.invoke(core.clj:3010)
    at clojure.core$doall.invoke(core.clj:3025)
    at user$eval5835.invoke(form-init6877095580223984770.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6782)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    at clojure.lang.Compiler.loadFile(Compiler.java:7165)
    at clojure.main$load_script.invoke(main.clj:275)
    at clojure.main$init_opt.invoke(main.clj:280)
    at clojure.main$initialize.invoke(main.clj:308)
    at clojure.main$null_opt.invoke(main.clj:343)
    at clojure.main$main.doInvoke(main.clj:421)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Subprocess failed

prd の方も修正してみた:

% lein cljsbuild once
Compiling ClojureScript...
Compiling "app/prod/js/front.js" from ["src_front" "src_front_profile/hello_om_based2_front/prod"]...
Successfully compiled "app/prod/js/front.js" in 10.386 seconds.

README.md を見ると step4 はこうしろって書いてある。
これは前の lein trampoline figwheel frontend ってやったとの同じっぽい。

% lein descjop-figwheel

これを別の端末エミュレータで動かして………
こういう風に打つ:

% ./electron/electron ./app/dev/

すると……

f:id:noqisofon:20160410225038p:plain

キタ━━━━(゚∀゚)━━━━!!