Cuando realizamos por primera vez el deployment de una aplicación ruby, es habitual encontrar el siguiente error:
ExecJS could not find a JavaScript runtime
Para evitarlo rápidamente podemos descomentar la gema therubygem en el Gemfile y volver a ejecutar bundle.
Sin embargo es recomendable usar nodejs cuando está disponible. En nuestros planes de alojamiento nodejs está disponible .
Un modo sencillo de usar nodejs es editar el archivo runtimes.rb . Si hemos instalado execjs entonces debemos editar el siguiente archivo atendiendo a la versión de la gema en cuestión:
~/ruby/gems/gems/execjs-2.5.2/lib/execjs/runtimes.rb
Buscamos el grupo cuya linea contiene
name: "Node.js (V8)",
Y dejamos el grupo, para usar nodejs 6 del siguiente modo
Node = ExternalRuntime.new( name: "Node.js (V8)", command: "/opt/nodejs-8/bin/node", runner_path: ExecJS.root + "/support/node_runner.js", encoding: 'UTF-8' )
De esta manera execjs utilizará nodejs en la aplicación.