npm module

Maciej Brencz edited this page Feb 4, 2015 · 9 revisions
Clone this wiki locally

phantomas exposes its API (via CommonJS module) for easy integration with your nodejs code. You can easily perform phantomas runs and gather metrics and asserts results.


npm install phantomas --save

This will install phantomas from npm repository and add a dependency to your project package.json file.


#!/usr/bin/env node
var phantomas = require('phantomas');

console.log(phantomas); // { [Function: phantomas] path: '...', version: '1.0.0' }

phantomas('', {"analyze-css": true}, function(err, json, results) {
                'phantomas results',
                err, // null or exit code from phantomas process
                json, // parsed JSON with raw results
                results // results object with metrics values, offenders, asserts data

Now, run the code:

node example.js

Run in debug mode:

DEBUG=phantomas* node example.js


Take a look at the example script

var phantomas = require('phantomas'),

console.log(phantomas.version); // 1.0.0
console.log(phantomas.metadata.metrics); // metrics metadata - issue #224

task = phantomas(url, options, function(err, json, results) {
  // err: exit code
  // json: parsed JSON with raw results
  // results: results object with metrics values, offenders, asserts data

console.log(; // process ID

// Streams handling

// Events handling
task.on('progress', function(progress) {
  // reports page loading progress

task.on('milestone', function(milestone) {
  // reports page loading milestone - first byte received, onDOMReady, window.onload

task.on('log', function(msg) {
  // emitted on every log message sent by phantomas

task.on('results', function(results) {
  // results object with metrics values, offenders, asserts data

task.on('error', function(exitCode) {
  // reports phantomas exit code (if not zero)


  • CommonJS module does not handle different reporters as phantomas command line tool does. Metrics are only available as "raw" object or wrapped in results object.
  • CommonJS module does not support multiple runs (--runs switch from CLI tool). You need to create a loop in your code and call phantomas function multiple times.