【Rails7】git cloneしたプロジェクトをbin/devしても動かない時の対処法

Rails7で以下のコマンドを実行して作成されたプロジェクト(アプリ)を、Githubからローカル環境にcloneするとします。

$ rails new アプリ名 --css=bootstrap

そのローカル環境にcloneしたプロジェクトに対し、bundle installrails db:migrateを実行した後にbin/devすると以下のようなエラーが出ました。

  • /bin/sh: esbuild: command not found
  • rbenv: sass: command not found

今回は、上記のエラーに対するトラブルシューティングについてまとめました。

目次

プロジェクトを Github から clone する手順

まずは、目的のプロジェクトをGithubからcloneする流れについて軽く説明します。

cloneしたいプロジェクトのリポジトリURLをコピーする

Githubのプロジェクトの「Code」からリポジトリURLをコピーします。

ローカル環境にcloneする

以下のコマンドを実行し、ローカル環境の指定したディレクトリにプロジェクトをcloneします。

$ git clone [リポジトリURL] [clone先のディレクトリ名]

上記のコマンドでclone先のディレクトリは自動的に生成されるので、わざわざ事前にclone先のディレクトリを作っておく必要はありません。

cloneしたアプリのリポジトリURLを変更する(別リポジトリにpushする場合)

個人開発などで、cloneしたアプリを別のリポジトリにpushしたい場合は、ローカルにcloneしたアプリのリポジトリURLを変更する必要があります。

(例えば、作業効率化のためにアプリの雛形を用意していた場合、その雛形をgit cloneして別のアプリとして開発を進めたい場合はこの方法が使えます)

clone先のディレクトリに移動したら、以下のコマンドを実行してリポジトリURLを変更します。

$ git remote set-url origin git@github.com:ユーザー名/clone後のリポジトリ名.git

cloneしたアプリをgit pushしようとしたところ、「error: src refspec mail does not match any」といったエラーが出ました。対処法として、ターミナルで$ git push origin HEAD:main を実行したところうまくpushできました。

gemのインストールおよびマイグレーションの実行

clone先のディレクトリに移動し、以下のコマンドを実行します。

$ bundle install
$ rails db:migrate

その後、$ rails sでサーバーを立ち上げます。

通常なら、ここまでの作業でcloneしたアプリは動くはずです。

『Rails7+esbuild』では clone したアプリをそのまま bin/dev できない

今回はRails7にbootstrapを導入している都合上、JSやCSSをコンパイルするためにbin/devコマンドを実行する必要があります。

しかし、cloneする際に上記の手順だけではbin/devを実行した時に以下のようなエラーが吐き出されます。

20:10:37 js.1   | $ esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets --watch
20:10:38 js.1   | /bin/sh: esbuild: command not found
20:10:38 js.1   | error Command failed with exit code 127.
20:10:38 js.1   | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
20:10:38 css.1  | rbenv: sass: command not found
20:10:38 css.1  | 
20:10:38 css.1  | The `sass' command exists in these Ruby versions:
20:10:38 css.1  |   2.6.10
20:10:38 css.1  |   2.7.6
20:10:38 css.1  | 
20:10:38 css.1  | error Command failed with exit code 127.
20:10:38 css.1  | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

ようするに、esbuildsassが存在しません(インストールされていない)、ということです。

そこで、以下のコマンドを実行してesbuildsassをインストールします。

(事前にyarnNode.jsのインストールが必要です)

$ yarn add esbuild
$ yarn add sass

その後、bin/devでサーバーは立ち上がるはずです。

以上です。

参考資料

Stack Overflow
Why is esbuild not installed when creating new Rails 7 app with Bootstrap? I create a new Rails 7 app using the following syntax in the command line: $ rails new app_name --css=bootstrap I get the following errors when the app is being...
Qiita
Git clone から 環境構築 して プロジェクトに参加するまでの道のり(全部盛り) - Qiita 他の人が作っているプロジェクトに参加したい! と思い、とりあえずGit Cloneするものの、そのあともなかなか骨が折れます。道すがらバージョンあわせ(ここではRuby・MySQ...
lycheejam's tech log
git cloneしたリポジトリを別リポジトリにPUSHする - lycheejam's tech log 概要 git cloneしてきたリポジトリを別リポジトリとして管理したかったので GitHubにリポジトリを新規作成してそこにPUSHした感じです。 悪用とかではなく個人のリポジトリ...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

愛知の34歳。ブロガー&フリーター(現在無職)。院卒で大手自動車部品メーカーに入社するも、仕事が嫌になり3年で退職。28歳でNZワーホリへ。帰国後から現在まで、ワーホリのような「働きたい時だけ働く」「嫌なことはしない」という生き方しています。ここ1年は無職。趣味は登山、旅、音ゲー(ギタフリ)、たまにプログラミング。

コメント

コメントする

目次