Yeomanのgeneratorを自作することで、いろんな定形作業を楽にできるかもしれないと思い勉強してみます。
Yeoman
Yeomanは一言で言うと、nodeを使ったひな形作成ツールです。
例えばrailsだとrails new
するとひな形に従ったディレクトリが構成されますが、それの汎用バージョンだと考えればいいと思います。
Yeomanのひな形定義はgeneratorと呼ばれ、’generator-なんちゃら’の形で作成されています。
有名なのはgenerator-angularとかでしょうか。
GruntやGulpといった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 |
|
ここではbashですがzshでもいけるはずです。
入れるnodeはhttp://nodejs.jp/を見て安定版となっているバージョンを入れました。
さらにデフォルトで使用するバージョンとして今入れたバージョンを指定します。
1 2 |
|
Install Yeoman
さて、nodeの準備が整ったところでもろもろをインストールします。Yeomanや各種generatorはnodeのパッケージ管理ツールであるnpmのパッケージとして公開されているので、npm install
でインストールします。npm自体はnvmがnodeをインストールした時に一緒にインストールしてくれているはずです。
1 2 |
|
ここまででgeneratorを作成する準備は整いました。ではgeneratorを作成してみましょう。
1 2 3 |
|
Yeomanでgeneratorを実行するとき、’generator-なんちゃら’の’なんちゃら’の部分を引数として指定します。今回実行したいのはgenerator-generatorなのでgeneratorを指定します(ややこしい!)。先の例であったgenerator-angularの場合はyo angular
ですね。
yo generator
を実行すると対話状態になり、聞かれるままに答えていくと対話状態が終了し、必要なライブラリがインストールされます。
今回はpackage名をsampleとしておきます。
これでgeneratorのひな形が完成しました。超簡単ですね。
次はいよいよgeneratorを弄っていきます。