Me doy cuenta "Running PhantomJS on Heroku" es una pregunta relacionada pero ligeramente diferente ya que estoy tratando de usar una aplicación de nodo.¿Implementar phantomJS en la aplicación node.js?
Tengo problemas para implementar una secuencia de comandos casperJS (basada en phantomJS) para una aplicación de nodo. He intentado desplegar a Heroku colocando el PhantomJS binario de 64 bits en el directorio de mi aplicación /bin
, pero me sale el siguiente error al intentar ejecutar PhantomJS:
phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
Por lo que he leído esto puede ser resuelto instalando la biblioteca QtWebKit, pero Heroku no tiene esto instalado. ¿Hay otro proveedor de hosting que pueda usar que funcione o una forma de instalar este paquete en Heroku?
código relevante:
app.get('/', function(request, response) {
var sys = require('sys')
var exec = require('child_process').exec;
var child;
//works but gives error while loading shared library libqtwebkit.so.4
child = exec("phantomjs --version | tr -d '\n'", function(error, stdout, stderr) {
sys.print('stdout: ' + stdout);
sys.print('stderr: ' + stderr + '\n');
response.header('Content-Type', 'application/json');
response.send('_testcb(stdout:' + stdout + '\nstderr:' + stderr + ')', 200);
if(error !== null) {
console.log('exec error: ' + error);
}
});
});
he firmado para pruebas beta en Nodester pero su documentación está siendo bastante limitada en este punto.
EDITAR: Pude hacerlo funcionar simplemente copiando la carpeta lib de PhantomJS en el directorio raíz de mi aplicación de nodo.