Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Phapper

Build Status   Dependancy Status   NPM Version   <iframe src="http://jmervine.github.io/npm-downloads-badge/badge.html?module=phapper&name=false" allowtransparency="true" frameborder="0" scrolling="0" width="125" height="20" style="vertical-align: bottom"></iframe>

Simple PhantomJS Script wrapper for Node.js, which parsed JSON output from the passed PhantomJS script (if possible).

Links

Node.js Version

Tested on the following node versions (via Travis-ci.org):

  • 0.10

Install

$ npm install phapper

Note: On CentOS 6, I had to install the following packages:

  • sudo yum install freetype fontconfig

Additional Installation Notes

You can specify different versions of PhantomJS using npm config:

$ npm config set phantomjs_version

You will have to reinstall phapper if you change this option after initially installing it.

I've added limited Windows support, in that you'll have to install PhantomJS yourself and then specify the path in your code:

:::js
var Phapper = require('phapper');
Phapper.prototype.bin = 'c:\path\to\phantomjs.exe';

It's important to note that I haven't tested this on Windows (and don't really have an easy way to), so feedback and/or pull requests are welcome.

Usage

:::js
var Phapper = require('phapper');
var phap = new Phapper("/path/to/phantom/script.js",
                        [ "--arg1", "val1", "--arg2", "arg3" ]);
// Phapper also takes an Object as a third argument which can be
// anything you might pass to `child_process.exec`. E.g. `env`,
// `cwd`, etc. When using runSync, only `cwd` is supported.


// Note: runSync is pretty inefficent due to execSync.exec.
console.log("Run Sync");
var results = phap.runSync();
// => results
// {
//    parsed: { parsed json from stdout || undefined },
//    output: "stdout string\nstderr string"
// }
if (results.parsed) {
    console.log("result object:\n%j", results.parsed);
} else {
    console.log(results.output);
}

console.log("Run Async");
phap.run( function (result, resultObj) {
    // => result
    // { parsed json from stdout || undefined }
    // => resultObj
    // {
    //    stdout: "stdout string",
    //    stderr: "stderr string"
    //    error:  "error string"
    // }
    if (result) {
        console.log("Results:\n%j", result);
    }
    console.log("Raw Results:");
    console.log(resultObj.stdout);
    console.log(resultObj.stderr);
    if (resultObj.error) {
        console.error(resultObj.error);
    }
});

About

A better PhantomJS wrapper for Node.js

Resources

License

Releases

No releases published

Packages

No packages published