ESLint shareable config for Qooxdoo
This depends on @qooxdoo/eslint-plugins-qx
$ npm install --save-dev @qooxdoo/eslint-config-qx
For the esnext
version you'll also need Babel's ESLint parser and plugin:
$ npm install --save-dev babel-eslint eslint-plugin-babel
This will let you use ES2016 features like async
/await
and decorators. For a full list of features see Babel's experimental features and their Learn ES2015.
Create a new file package.json
with the following contents in your project:
{
"name": "<appname>",
"description": "<appdesc>",
"author": "Your Name <[email protected]>",
"version": "0.0.1",
"license": "MIT",
"dependencies": {},
"devDependencies": {
"@qooxdoo/eslint-config-qx": "^0.0.7"
},
"engine": "node >= 4.5",
"eslintConfig": {
"extends": [
"qx"
]
},
"scripts": {
"eslint": "eslint --cache"
}
}
Replace name, description and author ofc.
Add these lines to it:
{
"devDependencies": {
"@qooxdoo/eslint-config-qx": "^0.0.7"
},
"eslintConfig": {
"extends": [
"@qooxdoo/eslint-config-qx/browser"
]
},
"scripts": {
"eslint": "eslint --cache"
}
}
Add .eslintcache
to it.
$ npm install
$ npm run eslint -- .
Or lint AND fix:
$ npm run eslint -- --fix .
Normaly your app has its own globals, like qxl
for Qooxdoo Contribs,
for that you need to extend @qooxdoo/eslint-config-qx/browser
with your own config.
Create a file .eslintrc-qx
:
{
"globals": {
"qxl": false
}
}
This file tells eslint to ignore qxl
but don't allow writes to it.
Now you need to tell eslint about it in package.json
:
{
"eslintConfig": {
"extends": [
"@qooxdoo/eslint-config-qx/browser"
".eslintrc-qx"
]
}
}
Thats all.
ESLint has its own .eslintignore
file, when you run npm run eslint .
it will lint
all JS files found including generated ones, to exclude them you can create a
.eslintignore
and files/directories to it like in .gitignore
.
This is mine:
build/
gh-pages/
node_modules/
source/script/
source/resource/
# No need for lint
Gruntfile.js
Supports parsing ES2015, but doesn't enforce it by default.
This package also exposes qx/esnext
if you want ES2015+ rules:
{
"extends": "@qooxdoo/eslint-plugins-qx/esnext"
}
And qx/browser
if you're in the browser:
{
"extends": "@qooxdoo/eslint-config-qx/browser"
}
If you want only check for safety-errors then extend qx/safety:
{
"extends": "@qooxdoo/eslint-config-qx/safety"
}
- Original XO Author: Sindre Sorhus
- Changes for Qooxdoo by: René Jochum
MIT