yslowjs

Wrapper for phantomjs yslow.js

YSlow.js on Node.js

     

YSlow.js on Node.js is a simple Node.js wrapper for programmatically running phantomjs yslow.js.

  1. PhantomJS in your PATH.
  2. Tested on the following node versions (via Travis-ci.org):
    • 0.8
    • 0.10
:::shell
$ npm install yslowjs

See Phapper if you're having issues with PhantomJS.

You can specify different versions of YSlow.js using npm config:

$ npm config set yslowjs_version

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

Windows? Click here!

:::js
var yslow = new YSlow('http://example.com/path/foo',
    [ '--arg', 'value' ]);
    // Supported:
    //   info     specify the information to display/log (basic|grade|stats|comps|all) [all],
    //   ruleset  specify the YSlow performance ruleset to be used (ydefault|yslow1|yblog) [ydefault],
    //   beacon   specify an URL to log the results,
    //   ua       specify the user agent string sent to server when the page requests resources,
    //   viewport specify page viewport size WxY, where W = width and H = height [400x300],
    //   headers  specify custom request headers, e.g.: -ch '{\'Cookie\': \'foo=bar\'}',
    // WARNING: format is locked at json, so don't pass it!
:::js
// file: async.js
var YSlow = require('lib/yslow');
var yslow = new YSlow('http://mervine.net/projects/npms/yslowjs',
    [ '--info', 'basic' ]);
console.log('\nRunning (Async)....');
yslow.run( function (error, result) {
    if (error) {
        console.trace(error);
    } else {
        console.log('=> overall:   ' + result.o);
        console.log('=> load time: ' + result.lt);
    }
});
:::js
// file: sync.js
var YSlow = require('lib/yslow');
var yslow = new YSlow('http://mervine.net/projects/npms/yslowjs',
    [ '--info', 'basic' ]);
console.log('\nRunning (Sync)....');
var results = yslow.runSync();
console.log('=> overall:   ' + results.o);
console.log('=> load time: ' + results.lt);
:::js
var YSlow = require('lib/yslow');
YSlow.prototype.script = '/path/to/your/yslow.js';
// continue on