<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kazuhiro hara</title>
    <description>The latest articles on DEV Community by kazuhiro hara (@karad).</description>
    <link>https://dev.to/karad</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F49070%2F3d990503-c668-493f-8197-3f4e337a8171.png</url>
      <title>DEV Community: kazuhiro hara</title>
      <link>https://dev.to/karad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/karad"/>
    <language>en</language>
    <item>
      <title>Released chochoi v0.0.6</title>
      <dc:creator>kazuhiro hara</dc:creator>
      <pubDate>Mon, 25 Dec 2017 00:23:22 +0000</pubDate>
      <link>https://dev.to/karad/released-chochoi-v006-5fi3</link>
      <guid>https://dev.to/karad/released-chochoi-v006-5fi3</guid>
      <description>&lt;p&gt;Released &lt;a href="https://github.com/karad/chochoi"&gt;chochoi&lt;/a&gt; v0.0.6!&lt;/p&gt;

&lt;p&gt;I added &lt;code&gt;merry&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gU86CtRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/67ajym6231bwcwa2zwrb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gU86CtRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/67ajym6231bwcwa2zwrb.png" alt="merry command capt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can run below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm i -g chochoi
$ chochoi merry
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>ちょっとしたコマンドをさくっとClojureScriptで書けるスターターキットchochoiをつくった</title>
      <dc:creator>kazuhiro hara</dc:creator>
      <pubDate>Sat, 23 Dec 2017 15:22:57 +0000</pubDate>
      <link>https://dev.to/karad/clojurechochoi-3o2l</link>
      <guid>https://dev.to/karad/clojurechochoi-3o2l</guid>
      <description>&lt;p&gt;ClojureやClojureScriptを使って、ちょっとしたコマンドラインのプログラムを作る方法はたくさんあります。&lt;br&gt;
多くはleiningenやbootを使ったもので、高機能かつ素晴らしいものですが、個人的に欲しいものは以下のものです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS上で動くコマンドのためのプロジェクトを自動生成できる&lt;/li&gt;
&lt;li&gt;clojurescriptで処理を記述できる&lt;/li&gt;
&lt;li&gt;プロジェクト生成のジェネレータの起動に時間がほとんどかからない&lt;/li&gt;
&lt;li&gt;起動から実行までの時間も早い&lt;/li&gt;
&lt;li&gt;ビルドもなるべく時間がかからない。leiningenやbootにも依存しない&lt;/li&gt;
&lt;li&gt;npmでインストール可能&lt;/li&gt;
&lt;li&gt;ビルド時は、コマンドのインストールまでやってくれる&lt;/li&gt;
&lt;li&gt;なんか楽しそう(コマンドの実行結果がキャッチー)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  何を作ったの？
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;chochoi&lt;/code&gt;というClojureScriptベースのCLIコマンドを生成可能なツールです。&lt;code&gt;chochoi&lt;/code&gt;は日本語でいう「ちょちょい」であり、簡単かつ迅速にコマンドプロジェクトを作成します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/karad/chochoi"&gt;chochoiのリポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/chochoi"&gt;chochoiのnpmパッケージ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;hello&lt;/code&gt;というコマンドを作りたいときに、&lt;code&gt;chochoi new hello&lt;/code&gt;と実行することで、&lt;code&gt;hello&lt;/code&gt;コマンドをビルド可能なプロジェクトファイル一式が生成されます。&lt;/p&gt;

&lt;p&gt;まだバージョンは&lt;code&gt;0.0.5&lt;/code&gt;でして、発展途上です。&lt;a href="https://github.com/karad/lein_template_descjop"&gt;descjop&lt;/a&gt;を作ってた時に、自動生成関係で「うーん」と思っていた部分が主に改善されているはずです。（descjopもこっちベースで作り直す予定）&lt;/p&gt;

&lt;p&gt;※ まだMacでしか動作確認はしていません。Windowsはパスの問題を解決する必要がありそうです。Linuxはたぶん動きそう。&lt;/p&gt;
&lt;h2&gt;
  
  
  使い始める前の準備
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;cljs.jar&lt;/code&gt;を &lt;a href="https://github.com/clojure/clojurescript/releases/latest"&gt;https://github.com/clojure/clojurescript/releases/latest&lt;/a&gt; でダウンロードしておき、これをローカルストレージのどこかに配置します。&lt;/p&gt;

&lt;p&gt;そして、&lt;code&gt;CLJS_PATH&lt;/code&gt;という環境変数を設定しておきます。&lt;/p&gt;

&lt;p&gt;こんな感じです。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export CLJS_PATH="/Users/XXXXX/.cljs/cljs.jar"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  chochoiのインストール
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;chochoi&lt;/code&gt;をインストールします&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm install -g chochoi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  helloプロジェクトをつくってみる
&lt;/h2&gt;

&lt;p&gt;例として、&lt;code&gt;hello&lt;/code&gt;というコマンドを作ってみましょう。&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chochoi new hello&lt;/code&gt;を実行するとこんな風にファイルが生成されます。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ chochoi new hello

⚡ init chochoi project...

------------------------------------
- create : ./hello
- create : ./hello/src/hello
- create : hello/src/hello/core.cljs
- create : hello/src/hello/command.cljs
- create : hello/.gitignore
- create : hello/build.clj
- create : hello/build.js
- create : hello/config.js
- create : hello/package.json
- create : hello/README.md
------------------------------------

👍 completed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  helloプロジェクトをビルドをする
&lt;/h2&gt;

&lt;p&gt;helloディレクトリが生成されているので、移動し、&lt;code&gt;chochoi build&lt;/code&gt;コマンドを実行します。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cd hello
$ chochoi build

⚡ build chochoi project...

completed linked command.

completed clojurescript build.
up to date in 0.055s
/Users/XXXXX/.nvm/versions/node/v8.7.0/bin/hello -&amp;gt; /Users/XXXXX/.nvm/versions/node/v8.7.0/lib/node_modules/hello/out/main.js
/Users/XXXXX/.nvm/versions/node/v8.7.0/lib/node_modules/hello -&amp;gt; /Users/XXXXX/study/chochoi/hello

👍 completed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;すると、ビルドが完了し、なおかつ、コマンドとして登録されます。&lt;/p&gt;

&lt;h2&gt;
  
  
  実行する
&lt;/h2&gt;

&lt;p&gt;あとは実行するだけです。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ hello kaz
Hello world! kaz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;すぐ起動するし、速いですね！&lt;/p&gt;

&lt;h2&gt;
  
  
  処理をいじるには
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;src/hello/command.cljs&lt;/code&gt;で実行処理が書かれているので、ここを変更するだけです。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(ns hello.command
  (:require [cljs.nodejs :as nodejs]))

(defn command [args]
  (println "Hello world!" (str (first args))))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;みなさまの、ごスターをお待ちしております&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/karad/chochoi"&gt;chochoiのリポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>clojurescript</category>
      <category>node</category>
      <category>generator</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
