Rails6で「rails new –skip-bundle」が実行されない時の対処方法

Ruby on Rails

はじめに

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

【Rails】rails newでバージョン指定しても、それ以上のバージョンが入ってしまう場合の対処法|TechTechMedia
「rails new」を実行する際にバージョンを指定しても、それ以上のバージョンが入ってしまう場合の対処法について解説しています。原因はGemfileにあるので、Railsのバージョン指定がうまくいかないといった時は、Gemfileの記述に着目してみてください。

原因

Webpackerが原因でした。

理由

Rails 6から新規でプロジェクトを作成するとデフォルトでWebpackerをインストールします。

Webpackerを追加する時に、Gemfilewebpacker 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を削除してもいいのかもしれません。

安全性の検証はしてないので、あまりよく無いかも、、、。

わからないので、最初に紹介した方法がいいと思います。

コメント

タイトルとURLをコピーしました