Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rails 6.1で`rails new`の生成を最小限にするフラグが追加(翻訳)

概要

原著者の許諾を得て翻訳・公開いたします。

日本語タイトルは内容に即したものにしました。

Rails 6.1でrails newの生成を最小限にするフラグが追加(翻訳)

追加前

Railsアプリケーションを新たに生成する場合、デフォルトではモダンなフルスタックWebアプリケーションを構築するのに必要なフレームワーク機能を可能な限りすべて取り入れます。

しかし、Railsの機能をすべて使いたい人ばかりではありません。たとえば、アプリケーションでAction CableやAction Mailbox、Action Textを必要としない場合、アプリケーションを生成するときに以下のようにそうしたフレームワーク機能の導入をスキップするフラグを指定します。

rails new my_awesome_app --skip-action-text --skip-action-cable\
--skip-action-mailbox

この機能があるにもかかわらず、フレームワークの追加機能をすべて除外した最小限の「素の」Railsが欲しいという声もありました。実際、ミニマリストが以下のようにフラグを渡すことも珍しくありません。

rails new my_awesome_app --skip-spring --skip-listen --skip-bootsnap\
--skip-action-text --skip-active-storage --skip-action-cable\
--skip-action-mailer --skip-action-mailbox --skip-test\
--skip-system-test --skip-active-job

そのためには、Railsにデフォルトでどんなフレームワーク機能が含まれるかを知ったうえで不要な機能をスキップする必要がありました。

追加後

Railsアプリケーションを生成するときに、以下の方法で最小限のフレームワーク機能だけを持たせられるようになりました(#39282)。

  rails new my_awesome_app --minimal

--minimalを指定することで、以下のフレームワーク機能がすべてスキップされ、ベアボーンのRailsアプリケーションを得られます。

- action_cable
- action_mailbox
- action_mailer
- action_text
- active_job
- active_storage
- bootsnap
- jbuilder
- spring
- system_tests
- turbolinks
- webpack

これでユーザーは自分のユースケースにふさわしい極めて軽量なアプリケーションを手軽に生成できます。

#39444では、アプリケーションを生成するときに--interactiveフラグを指定することで、必要なフレームワーク機能をインタラクティブに選べる機能の導入が計画されています。

関連記事

Rails: ActiveSupport::Concernをextendしたモジュールをprependする機能(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。