はじめに
こちらの記事を参考にrails _6.0.3_ new App --skip-bundle
を実行したかったが、何回やってもbundle install
が実行されてしまうので、原因を調べてみました。

【Rails】rails newでバージョン指定しても、それ以上のバージョンが入ってしまう場合の対処法|TechTechMedia
「rails new」を実行する際にバージョンを指定しても、それ以上のバージョンが入ってしまう場合の対処法について解説しています。原因はGemfileにあるので、Railsのバージョン指定がうまくいかないといった時は、Gemfileの記述に着目してみてください。
原因
Webpackerが原因でした。
理由
Rails 6から新規でプロジェクトを作成するとデフォルトでWebpackerをインストールします。
Webpackerを追加する時に、Gemfile
にwebpacker
gemを追加してbundle install
を実行し、続いてbin/rails webpacker:install
を実行するみたいです。
詳しくはRailsガイドを参照してください。
解決策
rails new
のオプションに--skip-webpack-install
を追加すれば、ok。
$ rails _6.0.3_ new App --skip-bundle --skip-webpack-install
私はrailsのバージョンを固定したかったので、gemfile
を弄って、railsのバージョンを固定した後にbundle install
を実行します。
# 変更前
gem 'rails', '~> 6.0.3'
# 変更後
gem 'rails', '= 6.0.3'
# ついでにwebpackerが記述してあるか確認してください
gem 'webpacker', '~> 4.0'
$ bundle install
しかし、このままではwebpackerがインストールされないので、下記のコマンドでインストールします。
$ bin/rails webpacker:install
これでwebpackerが無事インストールされます。
まとめ
他の方法でrails new
を実行後、作成されるgemfile.lock
を削除、gemfile
を編集、bundle install
の順でもできますが、どうなんでしょうか。
最初だけなら、gemfile.lock
を削除してもいいのかもしれません。
安全性の検証はしてないので、あまりよく無いかも、、、。
わからないので、最初に紹介した方法がいいと思います。
コメント