amilajack / eslint-plugin-compat
- суббота, 11 марта 2017 г. в 03:11:52
JavaScript
Lint the browser compatibility of your code
.eslintrc
browserslist
integration (using package.json
)See the Road Map for more details
npm install --save-dev eslint-plugin-compat
Add "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