LoginSignup
6

More than 3 years have passed since last update.

Heroku で Rails/webpacker のコンパイルに失敗する

Last updated at Posted at 2019-01-08

何が起きたか

Heroku にデプロイした Rails アプリが webpacker.gemrake assets:precompile で失敗するようになった。こんなエラーが出る。

error upath@1.0.2: The engine "node" is incompatible with this module. Expected version ">=4 <=9". Got "10.14.1"

webpacker がどこかで依存している upath のバージョンが古く、 Node.js の 4.x から 9.x までのサポートしかなかったので失敗していた。

原因

Heroku で使われるデフォルトの Node.js が2019年に入って 8.x から 10.x になってたみたい。

Heroku Node.js Supportを見ると、以下のような記述があった。

If you don’t specify a version, the latest Long-Term-Support release will be used.

Heroku の Node は特にバージョンを指定しないと最新のLTSリリースを使うらしい。そこでNode.js Release Working Group の LTS(Long Time Support)スケジュールをチェックすると、以下の表があった。8.x系は2019年1月1日から Active LTS から Maintenance LTS になってる。

解決方法

  • デプロイしたい Rails アプリで yarn upgrade すれば upath のバージョンも上げてくれるので Node.js 10.x 系でも動くようになる。
  • もしくは Node.js のバージョンを固定する。

長期的には前者、短期的には後者の方法が安全かな。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6