@ojolabs/linter
v1.0.11
Published
Shared linting rules for javascript applications
Downloads
3
Readme
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:
- Sublime Text
- Vim
- IDEA (todo)
Allegedly, installing eslint_d can significantly improve live linting performance.