amilajack / eslint-plugin-compat
- суббота, 11 марта 2017 г. в 03:11:52
JavaScript
Lint the browser compatibility of your code
.eslintrcbrowserslist integration (using package.json)See the Road Map for more details
npm install --save-dev eslint-plugin-compatAdd "compat" to .eslintrc "plugins" section, add "browser": true to "env"
If you use typescript, see typescript-eslint-parser.
// .eslintrc
{
// ...
"env": {
"browser": true
},
"plugins": ["compat"],
"rules": {
// ...
"compat/compat": 2
}
}Default
22: navigator.serviceWorker
^^^^^^^^^^^^^ `ServiceWorker` is not supported in IE 11, Edge 15
and Safari 8 😢
eslint-plugin-compat uses the browserslist configuration in package.json
See ai/browserslist for configuration. Here's some examples:
// Simple configuration (package.json)
{
// ...
"browserslist": ["last 1 versions", "not ie <= 8"],
}// Use development and production configurations (package.json)
{
// ...
"browserslist": {
"development": ["last 2 versions"],
"production": ["last 4 versions"]
}
}Toolchains for native platforms, like iOS and Android, have had API linting from the start. It's about time that the web had similar tooling.
This project was inspired by a two hour conversation I had with someone on the experience of web development and if it is terrible or not. The premise they argued was that x browser doesn't support y feature while z browser does. Eventually, I agreed with him on this and checked made this plugin to save web developers from having to memorize browser compatibility of specs.
For a minimal demo, see amilajack/eslint-plugin-compat-demo