node package manager


Broccoli plugin for jscs


npm version Build Status Build status Dependency Status devDependency Status Code Climate Coverage Status

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,
    esnext: true,
    disableTestGenerator: false

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

  "esnext": true,
  "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.esnext {true|false}

Support ES6 module syntax.

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