是否存在适配IE8/IE9的ESLint预制配置文件?
当然有啦!完全不用你从零开始折腾ESLint配置,社区早就为IE8/IE9这类旧浏览器准备好成熟的预制配置了,能帮你把兼容性相关的关键规则都覆盖到,省得漏掉细节。下面给你推荐几个靠谱的选项:
eslint-config-ie8:这是专门瞄准IE8的配置包,会启用所有和IE8兼容性挂钩的ESLint规则——比如禁止使用IE8原生不支持的ES5特性(像
Array.prototype.forEach这类,除非你已经准备了polyfill,否则配置会直接标记问题),还会检查DOM API的兼容性。安装方式很简单:npm install eslint-config-ie8 --save-dev之后在你的
.eslintrc(或.eslintrc.json)里把extends字段设为ie8就行:{ "extends": "ie8" }eslint-config-airbnb-base/legacy:如果你平时习惯用Airbnb的代码风格规范,他们的基础配置里有个
legacy分支,专门适配旧环境包括IE8/IE9。它不仅覆盖了兼容性规则,还兼顾了代码质量要求。安装对应依赖后,在配置文件里这么写:{ "extends": "airbnb-base/legacy" }额外补充:eslint-plugin-compat:如果上面的预制配置还满足不了你更细致的兼容性检查需求(比如某些特定DOM方法在IE9里的特殊表现),可以搭配
eslint-plugin-compat插件。它能精准针对指定浏览器版本做兼容性扫描,安装后在配置里启用插件并设置目标浏览器:{ "plugins": ["compat"], "settings": { "targets": { "ie": ["8", "9"] } } }
最后提个小提醒:使用这些配置前,注意确认配置包和你当前ESLint版本的兼容性,有些旧配置包可能需要对应特定版本的ESLint,安装时可以看下包的文档说明。另外如果你的项目用了Babel转译,记得配合babel-eslint解析器,这样ESLint才能正确识别转译后的代码兼容性。
内容的提问来源于stack exchange,提问作者Steven

