Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

git push herokuで Precompiling assets failed.の対処法

はじめに

GitHubにgit pushした後、
Herokuにgit push herokuをした際に

remote:  !
remote:  !     Precompiling assets failed.
remote:  !

とエラーが発生した。

環境

Rails(5.1.4)

エラーを確認する

//省略
 Running: rake assets:precompile
remote:        Yarn executable was not detected in the system.
remote:        Download Yarn at https://yarnpkg.com/en/docs/install
remote:        rake aborted!
remote:        Sprockets::FileNotFound: couldn't find file 'html2canvas/dist/html2canvas.js' with type 'application/javascript'
//省略
remote:  !
remote:  !     Precompiling assets failed.
remote:  !

エラーを見るとyarnがインストールが出来ていないと表示があります。
ローカル環境ではyarnはインストールされているはずになんでだろうと調べてみました。

解決方法

Rails5.1以上ではyarnサポートされていないため,
yarnを機能させるためには`Heroku上にyarnをインストールしないといけない。rubyビルドパックではyarn installがないためにエラーが発生してしまうそうです。

ではどうすればいいか、、、、。
解決方法は私の場合、至って簡単でした。
下記のコマンドを叩けば解決しました。

$ heroku buildpacks:add --index 1 heroku/nodejs

Heroku buildpacksheroku/nodejsが追加されます。
これを叩けばHeroku上にyarnがinstallされ
再度、git push herokuにエラーが吐き出される事なく成功します。

$ heroku buildpacks
====Buildpack URLs
1. heroku/nodejs
2. heroku/ruby

$heroku buildpacksで確認すると
heroku/nodejsが追加されていると思います。
これで完了です。

終わりに

今回のエラーは初歩的なことかもしれませんが
基本的にRailsだけでgit push herokuをしていた方。
javascript、パッケージがHeroku上にインストールできない、などのHeroku上でのprecomplieエラーの解決に
手助けできたらなと思います。

参考URL

https://www.bokukoko.info/entry/2017/12/07/000000
https://qiita.com/eRy-sk/items/cee652a24f67498bfe9f

Roy1473
プログラミング勉強、開発しております。
http://mrroy.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away