ハッカソンや個人開発でよく使う自分でこしらえたアプリケーションのスケルトン・コードをGithubに置いて、それを気軽にスキャフォルディングしたい。こんな欲求はだれしもあると思う。スキャフォルディング・ツールの王道といえばYeomanだが、ちょっとYeomanは...という人は少なくない。ということで、今回の記事では、Yeomanの代替になるような、Node.js製のスキャフォルディング・ツールを紹介しよう。
khaos
GitHub - segmentio/khaos: A super-simple way to scaffold new projects.
- segment.ioが作っていたシンプルなGithubレポジトリベースのスキャフォルディングツール
- 機能が小さく纏まっており、マスタッシュ記法をサポートするスキャフォルディングができる
- テンプレート中のマスタッシュから、CLIが勝手に入力項目を指示してくれるので、設定ファイルなどが不要。
- ほぼメンテされてないっぽいのが気になる
slush
GitHub - slushjs/slush: The streaming scaffolding system - Gulp as a replacement for Yeoman
- gulpを内部で使っているYeomanの代替を目指した大型スキャフォルディングツール
- http://slushjs.github.io/generatorsに使えるテンプレートがリスティングされている
- テンプレートになるslush-xxxというnpmをグローバルにインストールしないといけないのがちょっとイヤ
- プロジェクト生成時に新しいディレクトリを作ってくれないという罠がある(これはいいのか?)
- 使い勝手は(おそらく)Yeomanと近い。
pollinate
GitHub - howardroark/pollinate: Template your base files and generate new projects from Git(Hub).
- この中でもわりとイチオシのGithubレポジトリベースのスキャフォルディングツール
- 機能的にはsegment.ioのkhaosと近いが、こちらのほうが高機能
template.json
というファイルをテンプレートのレポジトリに配置することで、スキャフォルディング時に無視するファイルや、ファイルのリネームなどができる- シンプルながら、汎用性が高くてよい◎
degit
GitHub - Rich-Harris/degit: Straightforward project scaffolding
- マスタッシュ記法によるテンプレート化などを一切サポートしないGithubベースのスキャフォルディングツール
- クローンせず、ただレポジトリをダウンロードするだけなので非常に高速
- 作者「
git clone --depth 1
でもいいけど.gitディレクトリがついてきたりするから、こっちのが良いぜ」 - テンプレート化とかとにかく考えないでリポジトリをスケルトンとしてつかうんや!みたいな用途には最適っぽい
(番外編) cooking
- 毛色が違うがslushのテンプレートを探していて見つけたので最後に紹介
- webpackを使うフロントエンド・アプリケーションの開発に特化したスキャフォルディングツール
- slushのテンプレートを検索していると、slush-cooking-xxxというのがでてくるが、それがcookingのテンプレート
cooking init
を実行するとデフォルトでslush-cooking-vue
が指定されたり、ナチュラルに中国語が出てきたりするので挙動がよくわからないときがあるが、そのあたりさえ割り切れればわりと使いやすそうな雰囲気がある