Rails new app, options (v7)
December 17, 2021
Rails new するときのオプションについて調べました(Version 7)。
$ rails -v
Rails 7.0.0
利用可能なオプションリスト
使用可能なすべてのオプションを一覧表示するには、 rails new -help
を実行します。
執筆時点(Rails 7.0.0)では、次のように出力されます。
$ rails new --help
Usage:
rails new APP_PATH [options]
Options:
[--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated engines)
[--skip-collision-check], [--no-skip-collision-check] # Skip collision check
-r, [--ruby=PATH] # Path to the Ruby binary of your choice
# Default: /Users/akito/.rbenv/versions/2.7.5/bin/ruby
-m, [--template=TEMPLATE] # Path to some application template (can be a filesystem path or URL)
-d, [--database=DATABASE] # Preconfigure for selected database (options: mysql/postgresql/sqlite3/oracle/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
# Default: sqlite3
-G, [--skip-git], [--no-skip-git] # Skip .gitignore file
[--skip-keeps], [--no-skip-keeps] # Skip source control .keep files
-M, [--skip-action-mailer], [--no-skip-action-mailer] # Skip Action Mailer files
[--skip-action-mailbox], [--no-skip-action-mailbox] # Skip Action Mailbox gem
[--skip-action-text], [--no-skip-action-text] # Skip Action Text gem
-O, [--skip-active-record], [--no-skip-active-record] # Skip Active Record files
[--skip-active-job], [--no-skip-active-job] # Skip Active Job
[--skip-active-storage], [--no-skip-active-storage] # Skip Active Storage files
-C, [--skip-action-cable], [--no-skip-action-cable] # Skip Action Cable files
-A, [--skip-asset-pipeline], [--no-skip-asset-pipeline] # Indicates when to generate skip asset pipeline
-a, [--asset-pipeline=ASSET_PIPELINE] # Choose your asset pipeline [options: sprockets (default), propshaft]
# Default: sprockets
-J, [--skip-javascript], [--no-skip-javascript] # Skip JavaScript files
[--skip-hotwire], [--no-skip-hotwire] # Skip Hotwire integration
[--skip-jbuilder], [--no-skip-jbuilder] # Skip jbuilder gem
-T, [--skip-test], [--no-skip-test] # Skip test files
[--skip-system-test], [--no-skip-system-test] # Skip system test files
[--skip-bootsnap], [--no-skip-bootsnap] # Skip bootsnap gem
[--dev], [--no-dev] # Set up the application with Gemfile pointing to your Rails checkout
[--edge], [--no-edge] # Set up the application with Gemfile pointing to Rails repository
--master, [--main], [--no-main] # Set up the application with Gemfile pointing to Rails repository main branch
[--rc=RC] # Path to file containing extra configuration options for rails command
[--no-rc], [--no-no-rc] # Skip loading of extra configuration options from .railsrc file
[--api], [--no-api] # Preconfigure smaller stack for API only apps
[--minimal], [--no-minimal] # Preconfigure a minimal rails app
-j, [--javascript=JAVASCRIPT] # Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]
# Default: importmap
-c, [--css=CSS] # Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]
-B, [--skip-bundle], [--no-skip-bundle] # Don't run bundle install
Runtime options:
-f, [--force] # Overwrite files that already exist
-p, [--pretend], [--no-pretend] # Run but do not make any changes
-q, [--quiet], [--no-quiet] # Suppress status output
-s, [--skip], [--no-skip] # Skip files that already exist
Rails options:
-h, [--help], [--no-help] # Show this help message and quit
-v, [--version], [--no-version] # Show Rails version number and quit
Description:
The 'rails new' command creates a new Rails application with a default
directory structure and configuration at the path you specify.
You can specify extra command-line arguments to be used every time
'rails new' runs in the .railsrc configuration file in your home directory,
or in $XDG_CONFIG_HOME/rails/railsrc if XDG_CONFIG_HOME is set.
Note that the arguments specified in the .railsrc file don't affect the
defaults values shown above in this help message.
Example:
rails new ~/Code/Ruby/weblog
This generates a skeletal Rails installation in ~/Code/Ruby/weblog.
よく利用するオプション
-d, [--database=DATABASE]
データベースを指定するオプション。Default は sqlite3 です。データベースは mysql
, postgresql
, sqlite3
, oracle
, sqlserver
, jdbcmysql
, jdbcsqlite3
, jdbcpostgresql
, jdbc
から選択できます。
$ rails new . --database==postgresql
-T, [--skip-test]
テスト関連ファイルを生成しないようにします。
$ rails new . --skip-test
Gemfile に以下が追加されなくなります。
group :test do
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
gem "capybara"
gem "selenium-webdriver"
gem "webdrivers"
end
-J, [--skip-javascript]
--skip-javascript
オプションを利用すると以下の Gem がインストールされなくなります。
gem "importmap-rails" # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem "turbo-rails" # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem "stimulus-rails" # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
$ rails new . --skip-javascript
--skip-hotwire
--skip-hotwire
オプションを利用すると以下の Gem がインストールされなくなります。
gem "turbo-rails" # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem "stimulus-rails" # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
$ rails new . --skip-hotwire
--skip-asset-pipeline
--skip-asset-pipeline
オプションを利用すると以下の Gem がインストールされなくなります。
# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
gem "sprockets-rails"
また、asset pipeline 関連ファイルが作成されなくなります。
$ rails new . --skip-asset-pipeline
-j, [--javascript=JAVASCRIPT]
JavaScript のアプローチを選択できます。デフォルトはimportmapです。 webpack, esbuild, rollupから選択できます。
$ rails new . --javascript=esbuild
-c, [--css=CSS]
CSS プロセッサーを選択できます。tailwind, bootstrap, bulma, postcss, sassから選択できます。
$ rails new --css=tailwind
上記のコマンドで以下が追加されます。
# Use Tailwind CSS [https://github.com/rails/tailwindcss-rails]
gem "tailwindcss-rails"
-B, [--skip-bundle]
Rails アプリ作成後 Bundle Install を走らせないようにします。
$ rails new --skip-bundle
--api
Rails による API 専用アプリケーション を作成する場合に利用します。
--minimal
ミニマム構成の Rails App を作成するときに利用します。
$ rails new . --minimal
以下の Gem がインストールされなくなります。
gem "importmap-rails" # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem "turbo-rails" # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem "stimulus-rails" # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
gem "jbuilder" # Build JSON APIs with ease [https://github.com/rails/jbuilder]
gem "bootsnap", require: false # Reduces boot times through caching; required in config/boot.rb
gem "web-console" # Use console on exceptions pages [https://github.com/rails/web-console]
gem "capybara"
gem "selenium-webdriver"
gem "webdrivers"
また、
- ActionCable (--skip-action-cable)
- ActiveJob (--skip-active-job)
- ActionMailer (--skip-action-mailer)
- ActionMailbox (--skip-action-mailbox)
- ActionText (--skip-action-text)
- ActiveStrage (--skip-active-strage)
もインストールされません。
私がよく利用するオプションの組み合わせ
$ rails new . \
--database=postgresql \
--skip-action-mailbox \
--skip-action-text \
--skip-active-storage \
--skip-action-cable \
--skip-asset-pipeline \
--skip-test \
--skip-bundle