最近のRailsにはrails new APP_PATH --minimal
というコマンドが追加されました。
この--minimal
というフラグ自体は便利なのですが、例えば--minimal
だけどActiveStorageは使いたいという前回の投稿のようなものを作りたい場合はrails new APP_PATH --minimal --no-skip-active-storage
というような組み合わせはうまく動作しません。
Something similar to
eslint --init
?
もともとは簡単なシェルスクリプトを書く予定だったのですが、Interactive “rails new”のスレッドにあったESLintのような対話型のコマンドのこと?というコメントを見て面白そうだなと思いました。
確かにESLintのようなコマンドはどうやって実現しているのだろうと興味を持ったので、調べてみたのですがちょうどEnquirerというライブラリが使われていました。
const { prompt } = require('enquirer');
const response = await prompt({
type: 'input',
name: 'username',
message: 'What is your username?'
});
console.log(response); // { username: 'nzwsch' }
質問形式をオブジェクトを渡せばいいだけなので簡単そうです。 複数の質問は配列で渡せばよいのでそこまで悩むこともありませんでした。
https://github.com/nzwsch/rails-prompt
このコード量なのでわざわざGitHubにプッシュしなくても良かった気もしますが、今後も使うことを考えるとやっぱり用意しておいてもよかったかなと思います。