YeomanのGeneratorを自作して作業効率を上げる!

generator, yeoman

Yeomanのgeneratorを自作することで、いろんな定形作業を楽にできるかもしれないと思い勉強してみます。

Yeoman

Yeomanは一言で言うと、nodeを使ったひな形作成ツールです。

例えばrailsだとrails newするとひな形に従ったディレクトリが構成されますが、それの汎用バージョンだと考えればいいと思います。

Yeomanのひな形定義はgeneratorと呼ばれ、’generator-なんちゃら’の形で作成されています。

有名なのはgenerator-angularとかでしょうか。

GruntGulpといったTask Runnerを組み合わせて生成するgeneratorが多いように見受けられますが、Yeoman自体はそれらとは独立しているので単純にあるプロジェクトを構成するgeneratorを作成こともできます。

今回はgeneratorを自作することで定形作業を楽にできないか、といモチベーションのもとgenerator自作にチャレンジしてみます。

Getting Started

Yeomanのgeneratorの自作方法はWRITING YOUR OWN YEOMAN GENERATORに紹介されていますが、generatorを作成するgeneratorであるgenerator-generatorが存在します(generator多い!)。今回はこれを使いたいと思います。

また、generatorを実行するためにはYeomanが必要です。Yeomanを実行するためにはnodeが必要です。

Install nvm

僕のローカル環境にnodeが入っていなかったため、nodeを管理するnvmを入れるところから入ります。

1
2
3
curl https://raw.githubusercontent.com/creationix/nvm/v0.17.3/install.sh | bash
echo '[[ -s $HOME/.nvm/nvm.sh ]] && source $HOME/.nvm/nvm.sh' >> ~/.bashrc
source ~/.bashrc

ここではbashですがzshでもいけるはずです。

入れるnodeはhttp://nodejs.jp/を見て安定版となっているバージョンを入れました。
さらにデフォルトで使用するバージョンとして今入れたバージョンを指定します。

1
2
nvm install v0.10.26
nvm alias default 0.10.26

Install Yeoman

さて、nodeの準備が整ったところでもろもろをインストールします。Yeomanや各種generatorはnodeのパッケージ管理ツールであるnpmのパッケージとして公開されているので、npm installでインストールします。npm自体はnvmがnodeをインストールした時に一緒にインストールしてくれているはずです。

1
2
npm install -g yo
npm install -g generator-generator

ここまででgeneratorを作成する準備は整いました。ではgeneratorを作成してみましょう。

1
2
3
mkdir generator-sample
cd !$
yo generator

Yeomanでgeneratorを実行するとき、’generator-なんちゃら’の’なんちゃら’の部分を引数として指定します。今回実行したいのはgenerator-generatorなのでgeneratorを指定します(ややこしい!)。先の例であったgenerator-angularの場合はyo angularですね。

yo generatorを実行すると対話状態になり、聞かれるままに答えていくと対話状態が終了し、必要なライブラリがインストールされます。
今回はpackage名をsampleとしておきます。

これでgeneratorのひな形が完成しました。超簡単ですね。

次はいよいよgeneratorを弄っていきます。

Comments