メモ。
ハマったのでメモ
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
が無い、と怒られる。困った。