5
2

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 に JavaScript をコンパイルするビルドフローがある Ruby アプリをデプロイすると Node.js のバージョンが incompatible になる場合がある

Last updated at Posted at 2019-07-05

問題

Heroku に Rails バックエンドと webpacker + webpack 使って JavaScript のコンパイルを行うフロントエンドをもつWebアプリをデプロイしようとしたら以下のエラー。

herokuログ
error some-rails-app-build@0.1.0: The engine "node" is incompatible with this module. Expected version "10.16.0". Got "10.15.3"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Node.js のバージョンが 10.16.0 で指定されてるけど 10.15.3 でビルドしようとしている。 package.json では以下のようにNode.jsのバージョンを指定している。

package.json
...
  "engines": {
    "node": "10.16.0"
  }
...

原因と解決方法

原因は buildpacks の順番。 heroku/ruby にはすでに Node.js 10.15.3 がインストールされておりheroku/nodejs を buildpack として追加していても heroku/ruby が上にあるとそちらの Node.js が使われる

If you need a specific version of node for your Ruby application you should use multiple buildpacks to first install node then install Ruby.

Ruby とバージョン指定した Node.js を使いたかったら最初に Node.js をインストールしろと。

Verify that your buildpacks are set correctly and that Node comes before Ruby:

Node.js を Ruby より前にすることを注意している。

上記2つはHeroku Ruby Supportより引用。

screenshot.png

heroku/rubyheroku/nodejs の下に変えたらうまくいきました。

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?