eslint-plugin-joyent

Joyent's ESLint rules and configs.


Keywords
eslint, eslintconfig, eslintplugin, eslint-config, eslint-plugin
Install
npm install eslint-plugin-joyent@2.1.0

Documentation

node-eslint-plugin-joyent

This repository is part of the Joyent Manta and Triton projects. For contribution guidelines, issues, and general documentation, visit the main Triton and Manta project pages.

Overview

This is a plugin for ESLint that is meant to provide default style and lint configurations that approximate what Joyent repositories using jsstyle and JavaScript Lint currently do. ESLint is highly configurable, so additional capabilities can be turned on or disabled locally where desired.

Note that this can't yet be used as a full replacement for jsstyle, since ESLint's indent setting doesn't do a good job of accounting for line continuations. Using the style configuration is still useful though, since it does catch a number of other issues.

Setup

To use this repo, place the following in your package.json:

"devDependencies": {
    "eslint": "4.13.1",
    "eslint-plugin-joyent": "~2.1.0"
    ...
},

You'll then want to update to the latest set of Makefiles from eng.git, and put the following in your repository's Makefile:

ESLINT_FILES	= $(JS_FILES)

If you have a target that gets run when building zone images for installing project dependencies, you may want to consider passing --production to npm install to avoid including ESLint in the resulting zone image.

Then create .eslintrc at the top of the repository:

{
    "plugins": [ "joyent" ],
    "extends": [
        "eslint:recommended",
        "plugin:joyent/style",
        "plugin:joyent/lint"
    ],
    "parserOptions": {
        "ecmaVersion": 5,
        "sourceType": "script",
        "ecmaFeatures": {
        }
    },
    "env": {
        "node": true
    },
    "rules": {
        // Local rule configuration can go here 
    }
}