clojure で Electoron できる descjop をやってみようと思った
やってみたことをクズ記事でもいいので書いておくことにしたような気配。
書かないと忘れちゃうからね。
lein でプロジェクトを作る
descjop
を使うらしい。
lein new の使い方はこんな感じ:
% lein new <テンプレート名> <プロジェクト・ディレクトリパス>
descjop
というテンプレートを使うらしい。
とりあえず、hello-descjop というプロジェクト名にする:
% lein new descjop hello-descjop
grunt くらいあんよのインストール
npm で grunt-cli
をグローバルでインストールする。
これは grunt 更新していなかった気がするのでやっただけで、既に更新済みだよっ!ってひとはやんなくても大丈夫。
% sudo npm install -g grunt-cli
更新してなかったみたいなのでこんな感じのログ?が表示されたよ:
/usr/bin/grunt -> /usr/lib/node_modules/grunt-cli/bin/grunt
/usr/lib
`-- grunt-cli@1.2.0
+-- findup-sync@0.3.0
| `-- glob@5.0.15
| +-- inflight@1.0.4
| | `-- wrappy@1.0.1
| +-- inherits@2.0.1
| +-- minimatch@3.0.0
| | `-- brace-expansion@1.1.3
| | +-- balanced-match@0.3.0
| | `-- concat-map@0.0.1
| +-- once@1.3.3
| `-- path-is-absolute@1.0.0
+-- grunt-known-options@1.1.0
+-- nopt@3.0.6
| `-- abbrev@1.0.7
`-- resolve@1.1.7
ローカルな npm モジュールのインストール
npm はローカルにもモジュール?パッケージ?をインストールできるし、グローバルにもインストールできるのであれがそれ。
Electoron は npm 側のモジュールなので、これが大事:
% npm install
こんな感じのログが出た:
npm WARN deprecated lodash@0.9.2: Grunt needs your help! See https://github.com/gruntjs/grunt/issues/1403.
npm WARN deprecated graceful-fs@1.2.3: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
npm WARN deprecated wrench@1.5.4: wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.
hello-descjop@0.0.0 /home/rihine/workspace/hello-descjop
+-- closurecompiler-externs@1.0.4
+-- grunt@0.4.5
| +-- async@0.1.22
| +-- coffee-script@1.3.3
| +-- colors@0.6.2
| +-- dateformat@1.0.2-1.2.3
| +-- eventemitter2@0.4.14
| +-- exit@0.1.2
| +-- findup-sync@0.1.3
| | +-- glob@3.2.11
| | | +-- inherits@2.0.1
| | | `-- minimatch@0.3.0
| | `-- lodash@2.4.2
| +-- getobject@0.1.0
| +-- glob@3.1.21
| | +-- graceful-fs@1.2.3
| | `-- inherits@1.0.2
| +-- grunt-legacy-log@0.1.3
| | +-- grunt-legacy-log-utils@0.1.1
| | | +-- lodash@2.4.2
| | | `-- underscore.string@2.3.3
| | +-- lodash@2.4.2
| | `-- underscore.string@2.3.3
| +-- grunt-legacy-util@0.2.0
| +-- hooker@0.2.3
| +-- iconv-lite@0.2.11
| +-- js-yaml@2.0.5
| | +-- argparse@0.1.16
| | | +-- underscore@1.7.0
| | | `-- underscore.string@2.4.0
| | `-- esprima@1.0.4
| +-- lodash@0.9.2
| +-- minimatch@0.2.14
| | +-- lru-cache@2.7.3
| | `-- sigmund@1.0.1
| +-- nopt@1.0.10
| | `-- abbrev@1.0.7
| +-- rimraf@2.2.8
| +-- underscore.string@2.2.1
| `-- which@1.0.9
`-- grunt-download-electron@2.1.3
+-- decompress-zip@0.0.4
| +-- binary@0.3.0
| | +-- buffers@0.1.1
| | `-- chainsaw@0.1.0
| | `-- traverse@0.3.9
| +-- mkpath@0.1.0
| +-- nopt@2.1.2
| +-- q@0.9.7
| +-- readable-stream@1.1.13
| | +-- core-util-is@1.0.2
| | +-- isarray@0.0.1
| | `-- string_decoder@0.10.31
| `-- touch@0.0.2
+-- github-releases@0.2.1
| +-- minimatch@0.2.12
| +-- optimist@0.4.0
| | `-- wordwrap@0.0.3
| +-- prettyjson@0.8.1
| | `-- colors@0.6.0-1
| `-- request@2.27.0
| +-- aws-sign@0.3.0
| +-- cookie-jar@0.3.0
| +-- forever-agent@0.5.2
| +-- form-data@0.1.4
| | +-- async@0.9.2
| | `-- combined-stream@0.0.7
| | `-- delayed-stream@0.0.5
| +-- hawk@1.0.0
| | +-- boom@0.4.2
| | +-- cryptiles@0.2.2
| | +-- hoek@0.9.1
| | `-- sntp@0.2.4
| +-- http-signature@0.10.1
| | +-- asn1@0.1.11
| | +-- assert-plus@0.1.5
| | `-- ctype@0.5.3
| +-- json-stringify-safe@5.0.1
| +-- mime@1.2.11
| +-- node-uuid@1.4.7
| +-- oauth-sign@0.3.0
| +-- qs@0.6.6
| `-- tunnel-agent@0.3.0
+-- progress@1.1.2
`-- wrench@1.5.4
npm WARN hello-descjop@0.0.0 No repository field.
npm WARN hello-descjop@0.0.0 No license field.
electoron のインストール
「grunt-download-electoron」というモジュールがインストールされているらしいので、探してみたら、インストールされていた。
これが文字通り Electoron をインストールするためのモジュールらしい。
こーいう感じに打って、Electron をインストールするよ:
% grunt download-electron
こんな感じのログが表示された:
Running "download-electron" task
downloading [===================] 100% 0.0s
こんな感じのディレクトリができる:
% tree ./electron/
./electron/
├── LICENSE
├── LICENSES.chromium.html
├── content_shell.pak
├── electron
├── icudtl.dat
├── libgcrypt.so.11
├── libnode.so
├── locales
│ ├── am.pak
│ ├── ar.pak
│ ├── bg.pak
│ ├── bn.pak
│ ├── ca.pak
│ ├── cs.pak
│ ├── da.pak
│ ├── de.pak
│ ├── el.pak
│ ├── en-GB.pak
│ ├── en-US.pak
│ ├── es-419.pak
│ ├── es.pak
│ ├── et.pak
│ ├── fa.pak
│ ├── fi.pak
│ ├── fil.pak
│ ├── fr.pak
│ ├── gu.pak
│ ├── he.pak
│ ├── hi.pak
│ ├── hr.pak
│ ├── hu.pak
│ ├── id.pak
│ ├── it.pak
│ ├── ja.pak
│ ├── kn.pak
│ ├── ko.pak
│ ├── lt.pak
│ ├── lv.pak
│ ├── ml.pak
│ ├── mr.pak
│ ├── ms.pak
│ ├── nb.pak
│ ├── nl.pak
│ ├── pl.pak
│ ├── pt-BR.pak
│ ├── pt-PT.pak
│ ├── ro.pak
│ ├── ru.pak
│ ├── sk.pak
│ ├── sl.pak
│ ├── sr.pak
│ ├── sv.pak
│ ├── sw.pak
│ ├── ta.pak
│ ├── te.pak
│ ├── th.pak
│ ├── tr.pak
│ ├── uk.pak
│ ├── vi.pak
│ ├── zh-CN.pak
│ └── zh-TW.pak
├── natives_blob.bin
├── resources
│ ├── atom.asar
│ └── default_app
│ ├── default_app.js
│ ├── index.html
│ ├── main.js
│ └── package.json
├── snapshot_blob.bin
└── version
Electoron の準備かんりょー。
descjop プロジェクトをビルドして見るテスト
なんか lein externs の出力を externs.js にリダイレクトする。
おまじないらしい。
% lein externs > ./app/js/externs.js
次に cljsbuild する:
% lein cljsbuild once
あぷいの起動
コンパイルが終わったらしいので Electoron あぷいを起動してみる。
Linux の場合は ./electron/electoron を使うのかな?
% ./electron/electron ./app/
出た。