@ojolabs/linter

1.0.11 • Public • Published

linter

Shared linting rules and executable for all javascript applications

Configuring

This project is based on eslint. To take advantage of this linter:

  • Add this project as a dev dependency
  • Add a lint command to package.json for project linting
  • Add a lint check to shippable.yml to get linting during CI
  • Add an .eslintrc configuration file to add custom rules, inherit from a specific config file in this project, and (as a pre-requisite) to get live-linting in your editor

At a minimum, have the following in your package.json file:

"scripts": {
    "lint": "linter",
    ...
},
"devDependencies": {
    "@ojolabs/linter": "git://github.com/ojolabs/linter.git",
    ...
}

Configuring eslint

Consult the eslint documentation for information on how the various configuration options work, especially the rules page. This project provides some base javascript rules and both a node and browser (react) specific configuration file. These can be inherited from as a starting point by extending one of the existing configuration files (see eslint directory) to your projects .eslintrc file:

{
    "extends": ["./node_modules/@ojolabs/linter/node"]
}

Note the above assume you have arleady required this project as a dev-dependency and run npm install. Also note that as the linter descends directories, if it finds additional .eslintrc configuration files, they will over-ride preceding files. This can be used for e.g. a test directory where you want test specific environments or rules to be enforced.

Integrating with Shippable builds

When run, the linter looks for the XUNIT_LINTER_FILE environment variable. If found, it will output linting results to the specific file in a junit xml format. In your shippable yaml file:

...
env:
  - XUNIT_LINTER_FILE=shippable/testresults/lint.xml
...
script:
  - npm run lint

Integrating with Browserify / package.json based build

You can integrate eslint into the build directly by using the eslintify browserify transform. Note this is for development support, and will not break the build if linting fails (shippable integration is required for that)

npm install --save-dev eslintify

Then in your package.json:

...
browserify": {
    "transform": [
      "eslintify",
      "babelify",
      "envify"
    ]
  },
...

Live Linting

You can configure eslint to lint your code as you develop, providing inline editor errors. To do so, you'll need to install eslint globally. For projects that require plugins (like react), you'll also need to globally install that. e.g.:

sudo npm install -g eslint eslint-plugin-react

Afterwards, consult your editor specific docs for setting up live linting:

Allegedly, installing eslint_d can significantly improve live linting performance.

Readme

Keywords

none

Package Sidebar

Install

npm i @ojolabs/linter

Weekly Downloads

0

Version

1.0.11

License

UNLICENSED

Last publish

Collaborators

  • ojolabs-master
  • ojolabs-readonly