最近公司实施了 eslint 规范来统一代码风格,之前一直用的是 eslint-config-airbnb,但是在实际项目开发中,发现不少问题。后来发现 ServiceNow 公司团队也有推出一款 eslint 扩展包,名为 eslint-config-servicenow。经过实践,发现使用起来非常优秀。在这里分享一下使用教程,希望对前端开发同学们有所帮助。
安装
在项目根目录中执行以下命令安装 eslint-config-servicenow:
npm install eslint eslint-config-servicenow --save-dev
配置
在项目中创建 .eslintrc.json 文件,并添加以下配置:
-- -------------------- ---- ------- - ------- ----- ---------- - ------------ -- -------- - -- ------ ---- - -
通过 extends
引入 servicenow
配置项。
规则说明
- 所有 NaN 操作都应使用 Number.isNaN 判断
- 推荐使用
eslint-isnan
插件或no-self-compare
规则来检测 NaN;
- 推荐使用
- 所有 undefined 操作都应使用 void 0 判断
- 推荐使用
eslint-void
插件;
- 推荐使用
- 使用 isNaN() 时,请注意传入参数的类型,必须是 number,否则行为错误
- 建议单独使用
eslint-isnan
插件来检测 isNaN 函数;
- 建议单独使用
- 不在对象上使用 hasOwnProperty 函数
- 当目标对象本身重载了 hasOwnProperty 函数时,该规则将失效;
- 应使用 === 代替 ==
- 推荐使用
eqeqeq
规则;
- 推荐使用
- 不应使用 with 语句
- with 语句已被 ECMAScript 6 标准废弃;
- 不应使用 eval 函数
- 建议单独使用
eslint-no-eval
插件来检测 eval 函数;
- 建议单独使用
- 不应使用 for-in 枚举数组
- 建议单独使用
guard-for-in
规则来检测 for-in 枚举数组;
- 建议单独使用
- 对象和数组的结尾处不应有逗号
- 推荐使用
comma-dangle
规则。
- 推荐使用
示例代码
-- -------------------- ---- ------- --- - -- ----- ------- ------------ -- -- -- ----- -- ------------ - ----------------- -- -------- - -- ---- -- ------------------- - ----------------- -- --------------- - --- - -- --------- ----- ---- - -- -- -- ----- -- ---------- --- ---------- - ----------------- -- ------------ - -- ---- -- ----- - --- ---------- - ----------------- -- ---- ---- - --- - -- ---- --------- -- -- ----- ----- --- - - -- -- -- - -- ---- ----- - ------------- - --- - -- ---- ----- --- - - -- -- -- - -- ----------------- - ------- --- - ----------- ------ -- -- -- ----- ----- --- - --- -- --- --- ---- - -- ---- - -------------------- - -- ---- ----- --- - --- -- --- --- ------ ---- -- ---- - ------------------ -
总结
使用 eslint-config-servicenow 可以帮助前端开发团队更好地保证代码质量和一致性。通过此扩展包内置的严谨规则,可以有效减少代码的漏洞、错误和代码瑕疵。另外,个人认为,这些规则从某种程度上也反映出了一种良好的编程实践。
在使用过程中,还需要结合项目实际情况进行一些调整和适应,比如在规则配置方面,需要根据项目实际需求进行调整和定义。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005600d81e8991b448dddf4