6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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 のバージョンを固定する。

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

6
6
0

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
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?