Skip to content

qooxdoo/eslint-config-qx

Repository files navigation

eslint-config-qx

ESLint shareable config for Qooxdoo

This depends on @qooxdoo/eslint-plugins-qx

Install

$ 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.

Install in a existing Qooxdoo Project

If you don't have a package.json

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.

If you have a package.json

Add these lines to it:

{
	"devDependencies": {
		"@qooxdoo/eslint-config-qx": "^0.0.7"
	},
	"eslintConfig": {
		"extends": [
			"@qooxdoo/eslint-config-qx/browser"
		]
	},
	"scripts": {
		"eslint": "eslint --cache"
	}
}

Adjust your .gitingore

Add .eslintcache to it.

Now install eslint and eslint-config-qx

$ npm install

And finaly lint your files

$ npm run eslint -- .

Or lint AND fix:

$ npm run eslint -- --fix .

Handling globals

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.

Ignore compiled stuff in .eslintignore

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

Usage

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"
}

Authors

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published