为何ESLint未对ES2017的Object.values方法给出兼容性警告?
为什么ESLint未提示Object.values的兼容性问题?
ESLint的env配置仅用于启用对应环境的语法支持与全局变量,比如启用es6只是允许使用const、箭头函数这类ES6语法,并不会自动检测ES6之后新增API的版本兼容性。Object.values是ES2017新增的API,不在ES6语法范畴内,所以仅开启es6环境不会触发相关提示。
要检测这类API兼容性问题,需要借助第三方ESLint插件,比如eslint-plugin-compat,具体步骤如下:
- 安装插件:
npm install eslint-plugin-compat --save-dev
- 修改ESLint配置文件,启用插件并设置规则:
module.exports = { env: { node: true, es6: true, }, plugins: ['compat'], rules: { 'compat/compat': 'error' }, settings: { // 若未引入对应API的polyfill则留空;若已引入则填写对应的polyfill名称,比如['Object.values'] polyfills: [] } }
此外,你可以通过package.json中的browserslist字段指定目标运行环境(比如特定版本的Node.js或浏览器),插件会根据这个配置精准检测API是否兼容目标环境。
内容的提问来源于stack exchange,提问作者Tobbe
相关产品推荐
相关产品推荐

