Broccoli plugin for jscs
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status Build status Code Climate Coverage Status

npm version dependencies Status devDependencies Status

JSCS was merged into ESLint, so this project is no longer being worked on.

Broccoli plugin for jscs


var jscs = require('broccoli-jscs');

// assuming someTree is a built up tree
var tree = jscs(someTree);
// or
var tree = jscs('folderName');

As a Ember CLI Addon, simply npm install --save-dev broccoli-jscs and supply the options you would like:

var app = new EmberApp({
  jscsOptions: {
    configPath: '/my/path/.jscsrc',
    enabled: true,
    disableTestGenerator: false

You can also supply the options in the .jscsrc file if you wish:

  "excludeFiles": ["path/to/file"],
  // more rules...


jscs(inputTree, options)

options.configPath {String}

Will look in the root of the provided tree for a .jscsrc. Use this option if you would like to use a .jscsrc file from a different path.

Default: '.jscsrc'

options.config {Object}

Specify the options for JSCS programatically, accepts the same kind of JSON style object as you would provide in the .jscsrc file. This option will be overriden when a .jscsrc file is in the root or when options.configPath is set.

Default: '{}'

options.enabled {true|false}

This will eliminate processing altogether.

Default: false

options.logError {Function}

The function used to log to console. You can provide a custom function to log anywhere, perhaps a file or web service.

The function receives the following argument:

  • message - A generated string of errors found.

options.disableTestGenerator {true|false}

If true tests will not be generated.

Default: false

options.testFramework {String}

This setting determines what kind of tests are generated. If a custom testGenerator is set testFramework will be ignored.

This setting currently supports the following test frameworks:

  • qunit (default)
  • mocha

options.testGenerator {Function}

The function used to generate test modules. You can provide a custom function for your client side testing framework of choice.

The function receives the following arguments:

  • relativePath - The relative path to the file being tested.
  • errors - A generated string of errors found.

Default generates QUnit style tests:

var path = require('path');

function(relativePath, errors) {
  return "module('JSCS - " + path.dirname(relativePath) + "');\n" +
         "test('" + relativePath + " should pass jscs', function() {\n" +
         "  ok(" + !errors + ", '" + relativePath + " should pass jscs." + errors + "');\n" +

options.excludeFiles {String}

Exclude files or directories from processing. Supports globbing. Example:

var app = new EmberApp({
  jscsOptions: {
    excludeFiles: ['ember-runtime/ext/rsvp.js']
    // or
    excludeFiles: ['webclient/tests/**']


Running the tests:

npm install
npm test