メモ。
ハマったのでメモ
Node.jsのバージョンが変わりがちなので。
公式にも書いてあるとおり、
"engines": { "node": "8.12.0", "npm": "6.4.1" }
こんな感じでpackage.jsonに記載することで、Node.jsとnpmのバージョンを指定してHeroku上でAppを動かすことができる。
話の発端
enebularからflowをHerokuにデプロイしようとしたときに、最初にenebularのエージェントアプリをHerokuにデプロイする必要がある。
ただ、これをPushしようとするとエラーで止まってしまう。
We're sorry this build is failing! You can troubleshoot common issues here:
https://devcenter.heroku.com/articles/troubleshooting-node-deploys
Some possible problems:
- Node version not specified in package.json
https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
Love,
Heroku
! Push rejected, failed to compile Node.js app.
! Push failed
Node.js now defaults to Node 10 | Heroku Dev Center
なんか、HerokuのデフォルトNode.jsも8→10に変わってるっぽいので、本家リポジトリからフォークして、先程の方法でNode.jsのバージョン指定をしたものを作ってみました。
これだと、確かに指定したNode.jsとnpmが使われてそう・・・。
-----> Installing binaries
engines.node (package.json): 8.12.0
engines.npm (package.json): 6.4.1
Resolving node version 8.12.0...
Downloading and installing node 8.12.0...
npm 6.4.1 already installed with node
めっちゃ怒られながらも、なんとかPushができました。
enebular app、Node.js 8系指定をするようにしたらDeployできました!
— ポキオ🍺 (@pokiiio) November 7, 2018
みなさんもお試しあれ!@enebular #enebularhttps://t.co/KLKm40LJC1 pic.twitter.com/zC0XrfuWzx
ただ、未だにflowをenebularからHerokuにデプロイすると、e-node-redが無い、と怒られる。困った。