descjop で遊ぼう day 17 : descjop 0.6.3をリリースしました

0.5.x系で抱えた問題を解決した0.6系をリリースしました。

中身的には構成を変えたので、解説していきます。

Story Permalink

descjopは、0.5.4でストップしていたのですが、0.6系をようやくリリースしました。もう0.6.3になっているのは、いくつかバグフィックスをしたからです。

0.5.x系はいくつかの問題をかかえており、それを解決するべく結構作り変えた感じのものになります。

以下がリポジトリになります。皆さんの★スターを絶賛募集中です。

アプリがうまく動かない問題

Leiningenのプロジェクトテンプレートを作る際に気をつけなければいけない問題というのがあります。

それは名前空間として使う名前と、実際のフォルダ名です。

例えば、プロジェクト名を「start_app」とした場合、こんな風にプロジェクトを作成すると思います。

$ lein new app start_app

すると、プロジェクト名は「start_app」となります。

実際のソースファイルも「src/start_app/core.clj」として作られます。

ただ、名前空間としては、

(ns start-app.core
  (:gen-class))

となり、これはアンダーバーではなく「start-app」となります。

ここまでは普通のClojureプロジェクトになりますが、ClojureScriptのレイヤーにはいると、呼び出し時は「start_app.core」とする必要があります。

このあたりの変換がうまくいっていなく、下記のようなイシューがあがっておりました。

上記問題は対応したので、うまく動くと思います。

figwheelがうまく動かない問題

ClojureScript(lein-cljsbuild)と、figwheelと、Leiningenは、組み合わせ方によってはうまく動かないことがあります。

figwheelのバージョンをあげると動くようになったりしますが、OSXで動いたのに何故かWindowsではfigwheelの起動に失敗したりします。検索すると、Stack Overflowにもいくつかトピックがあったりします。このあたりを現状動くものに合わせていますが、原因についてはまだ調査中です。

使っているLeiningenのバージョンは2.6.x以降に対応ということにしました。OSXでbrewでインストールすると2.5.1になると思うので注意が必要です。

デベロップモードとプロダクションモードの切り分け問題

今までのdescjopは、「app」ディレクトリ自体にビルド後のファイルを書き出すように作ってありました。

ただこれにより「app」以下にfigwheelも同梱してしまう形となり、よろしくない点がありまして指摘いただいたりもしていました。

今回は、「app/dev」「app/prod」にそれぞれデベロップモードとプロダクションモードとして別々にビルドして書き出すようにしました。加えて、各モード向けの独自コンフィグを、

  • src_front_profile/NAME_SPACE/dev/conf.cljs
  • src_front_profile/NAME_SPACE/prod/conf.cljs

として持てるような形にしました。こちらコンフィグは、アプリ起動時にメイン関数に渡されます。

defaultプロジェクトでfigwheelが動きにくい問題

descjopの最初のバージョンからあった

$ lein new descjop YOUR_APP_NAME

でできるデフォルトプロジェクトは、フロント用の処理が分けられていなかったため、figwheelを入れるのに面倒が発生していました。

デフォルトプロジェクトでも、デベロップモードとプロダクションモードを用意し、Minimumプロジェクトという名称にとして用意しています。

OmやReagentも使わない場合は、こちらをご利用いただければと思います。

いくつかの便利エイリアスを用意

今回、便利なエイリアスを整理して、project.cljに組み込みました。

$ lein descjop-help          # descjopのヘルプを見れます
$ lein descjop-init          # projectの初期設定(Electron)
$ lein descjop-init-win      # Windowsユーザのためのproject初期設定
$ lein descjop-externs       # デベロップモードとプロダクションモード両方のexternsを出力する
$ lein descjop-externs-dev   # デベロップモード両方のexternsを出力する
$ lein descjop-externs-prod  # プロダクションモード両方のexternsを出力する
$ lein descjop-figwheel      # デベロップモードでのfigwheelを起動する
$ lein descjop-once          # デベロップモードとプロダクションモード両方にJavaScriptをビルド
$ lein descjop-once-dev      # デベロップモード両方にJavaScriptをビルド
$ lein descjop-once-prod     # プロダクションモード両方にJavaScriptをビルド

起動までのステップが複雑な問題

便利なエイリアスとして整理したおかげで、最短で実行するなら、下記でプロジェクト作成時からビルドが完了するようになりました。

$ lein descjop-init
$ lein descjop-externs
$ lein descjop-once

ちなみに、新しいライブラリを導入しなければdescjop-initは最初のみ実行すればOKです。

前のバージョンのほうを使いたい場合

これから動作させるなら、0.6.x系のほうがいいと思いますが、以前のものを愛用していた(人がいるのか不明ですが)場合は下記でプロジェクトが作成できます。

$ lein new descjop YOUR_APP_NAME --template-version 0.5.4

次回、0.6.x系での手順でアプリを作成してみます。

Colophon

編集長
Greative GK. 原一浩 ( kara_d )
製版システム
Clojure / Compojure / Ring / Enlive / markdown-clj / Jetty / MySQL
Share this magazine!
Follow designudge

Magazine Archives

vol.122

2016-2-01

Cover

台湾に行ってきました。

今回のカバーは、台湾にて撮影したものです。

自治体Webデザイントレンドこぼれ話 : ここだよマップ

CSS Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。

descjop で遊ぼう day 16 : Windows版のメニューを表示する

2015年の振り返り的な一人レトロスペクティブ

そういえば、まだ2015年の振り返りをマガジンに掲載していませんでした

編集後記

vol.121

2016-1-14

Cover

今回のカバーは、、、UFO?

自治体Webデザイントレンドこぼれ話 : 予告

CSS Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。

descjop で遊ぼう day 11 : Omのコンポーネントで遊ぼう

descjop で遊ぼう day 12 : Omのコンポーネントで遊ぼうその2

descjop で遊ぼう day 13 : Clojure ワークショップでTAしてきた話

descjop で遊ぼう day 14 : アプリケーションメニューを作ろう

descjop で遊ぼう day 15 : descjop 0.5.3をリリースしました

編集後記

vol.120

2016-1-14

Cover

今回のカバーも、初詣に行ったときのショットです。

descjop で遊ぼう day 6 : Electronがうまくダウンロードできないとき

descjop で遊ぼう day 7 : Hello Worldを出力してみるには

descjop で遊ぼう day 8 : Om basedテンプレートを使ってみる

descjop で遊ぼう day 9 : Om basedテンプレートにボタンをつける

descjop で遊ぼう day 10 : Om basedテンプレートにボタンをつけるその2

編集後記

vol.119

2016-1-10

Cover

今回のカバーは、初詣に行ったときのショット。

「descjop で遊ぼう」について

「descjop で遊ぼう」というのは年末にやったアドベントカレンダーのシリーズなのですが、前段としてまずはその解説をば。

descjop で遊ぼう day 1 : はじめに

descjop で遊ぼう day 2 : 3つのテンプレート

descjop で遊ぼう day 3 : 環境構築をしよう

descjop で遊ぼう day 4 : Helpを見てみよう

descjop で遊ぼう day 5 : デフォルトアプリケーションのビルドと起動

編集後記

vol.118

2015-10-22

Cover

今回のカバーは、Stack Overflow DevDaysのイベントをお手伝いしたときの窓からのショット。

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

ミカヅキClojure : ゼロからはじめるClojure入門第2回

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.117

2015-10-07

Cover

今回は散歩道からのショット

Editor’s Picks

designudgeで扱っている内容に近いジャンルのリソースのうち気になったものなど

U.S. Web Design Standardsを見てみる

今話題となっているU.S. Web Design Standardsの周辺情報など見てみました

Bootstrap 4徹底攻略 (3)

Bootstrap 4のアルファ版がでているので使おう

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.116

2015-9-28

Cover

今回は帰省した際に通った三島からのショットです

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

みそじ過ぎからの英語再学習

40を目前に今までサボっていた英語学習をはじめました

Bootstrap 4徹底攻略 (2)

Bootstrap 4のアルファ版がでているので使おう

ミカヅキClojure

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.115

2015-9-13

Cover

前回と同じ開発合宿のショットから一つ

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

開発合宿へ行こう! : Python mini hack-a-thon 夏山合宿 2015

先週末に行ってきた開発合宿について書きました。

ミカヅキClojure

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記