I need Heroku to use NodeJS 14 instead of 12, how do I do that? On my computer I'm using Node 14, and I'm defining it in engines on package.json
(at the root of my repo):
{
"engines": {
"node": "14.x"
}
...
}
I have both the heorku/nodejs
as well as the heroku/rails
buildpack installed because this is a Ruby on Rails apps with webpack:
But when running my tests is Heroku, I get this error:
Error: Missing binding /app/node_modules/node-sass/vendor/linux-x64-72/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x
Found bindings for the following environments:
- Linux 64-bit with Unsupported runtime (88)
If I workaround the problem in the CI, I still run into trouble when deploying:
-----> Installing node-v12.16.2-linux-x64
-----> Installing yarn-v1.22.4
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
yarn install v1.22.4
[1/5] Validating package.json...
error [email protected]: The engine "node" is incompatible with this module. Expected version "14.x". Got "12.16.2"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Node. js default version is now 16. x | Heroku Dev Center.
Just go to the official Node. js site (nodejs.org), download and execute the installer program. It will take care of everything and with a few clicks of 'Next' you'll get the latest Node. js version running on your machine.
In the documentation it says:
If you need a specific version of node for your Ruby application you should use multiple buildpacks to first install node then install Ruby.
which means if you deployed a Rails application, you need to remove all buildpacks and then re-add them in the correct order, first heroku/node
and then heroku/rails
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With