Necesito que Heroku use NodeJS 14 en lugar de 12, ¿cómo hago eso? En mi computadora, estoy usando Node 14 y lo estoy definiendo en los motores en package.json (en la raíz de mi repositorio):
{ "engines": { "node": "14.x" } ... } Tengo tanto heorku/nodejs como heroku/rails buildpack instalado porque esta es una aplicación de Ruby on Rails con webpack:
Pero cuando ejecuto mis pruebas es Heroku, aparece este 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)Si soluciono el problema en el CI, sigo teniendo problemas al implementar:
-----> 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 imok@0.1.0: 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.En la documentación dice:
Si necesita una versión específica de nodo para su aplicación Ruby, debe usar varios paquetes de compilación para instalar primero el nodo y luego instalar Ruby.
lo que significa que si implementó una aplicación Rails, debe eliminar todos los paquetes de compilación y luego volver a agregarlos en el orden correcto, primero heroku/node y luego heroku/rails .