Open4
RailsのAPI指定した場合としなかった場合の差分(v7.1.3.2)
大きくはviewの有無なんだろうとは思うけど、そんなにちゃんと見たことなかったのでちょっと見てみる。
とはいえ、一つ一つ細かく見ていくと大変そうなので気になる部分を抜き出していく。
概要を知りたいという方はこんなところより以下を参照頂くと良いです。
比較対象のプロジェクト生成コマンド
下記のコマンドで生成したプロジェクトを比較する。
※DBは個人的に使うことが多いpostgresqlを指定
# 通常版
$ rails new [プロジェクト名] -d postgresql
# API版
$ rails new [プロジェクト名] --api -d postgresql
以降、プロジェクト名は通常版をBase
、API版をAPI
とする。
プロジェクトサイズ
まずはプロジェクトサイズから比較したところ、以下の結果になった。
$ du -ks *
260 API
12464 Base
それなりに差が出るとは思っていたが、2桁も変わるとは・・・
と、思って少しだけ追っていったところ、差分はほぼtmp(≒bootsnapのキャッシュ)が大半を占めていた。
※APIはtmpに
$ du -ks Base/tmp/*
12132 Base/tmp/cache
4 Base/tmp/local_secret.txt
0 Base/tmp/pids
0 Base/tmp/storage
$ du -ks Base/tmp/cache/*
0 Base/tmp/cache/assets
12132 Base/tmp/cache/bootsnap
ということで、tmpを除いた場合は以下。
思ったよりは差がなかった。
# 単位はKB
260 API
328 Base
Gemfile
共通で記述されているものは割愛。
# APIのみ
gem "rack-cors" # デフォルトではコメントアウトされている
# Baseのみ
gem "sprockets-rails"
gem "importmap-rails"
gem "turbo-rails"
gem "stimulus-rails"
gem "jbuilder"
gem "web-console" # development group
gem "capybara" # test group
gem "selenium-webdriver" # test group
各Gemの簡単な説明を追記していきたいとは思っている。