What Is a Rule?
Rule 是ESLint 架构中最专业的部分,规则能做的很少,它们只是对提供的 AST 执行的一组指令。它们获取以下传入的上下文信息,但主要职责是:检查 AST、报告警告。我们使用时只需对已有 Rule 进行对应的配置即可达到代码检查的目的。
// .eslintrc.js// 在 rules 配置规则的属性即可使用;详细配置介绍在配置主题中给出。rules: {"eslint-plugin/prefer-message-ids": "error",}
Rule Structure
// 规则源码的基本结构/*** @fileoverview Rule to disallow unnecessary semicolons* @author Nicholas C. Zakas*/"use strict";//------------------------------------------------------------------------------// Rule Definition//------------------------------------------------------------------------------module.exports = {meta: {// 规则的类型:// problem:会导致错误// suggestion:有更合适的方案// layout:程序外观type: "suggestion",docs: {description: "disallow unnecessary semicolons",// 规则在规则首页处于的分类// Possible Errors:规则与 JavaScript 代码中可能的错误或逻辑错误有关// Best Practices:规则是关于最佳实践的,帮助你避免一些问题// Strict Mode:规则与使用严格模式和严格模式指令有关// Variables:规则与变量声明有关// Node.js and CommonJS:规则是关于Node.js 或 在浏览器中使用CommonJS 的// Stylistic Issues:规则是关于风格指南的,而且是非常主观的// ECMAScript 6:规则只与 ES6 有关, 即通常所说的 ES2015// ...category: "Possible Errors",// 所有的规则默认都是禁用的。// 在配置文件中,使用 "extends": "eslint:recommended" 来启用推荐的规则。recommended: true,// 可以访问完整文档的 urlurl: "https://eslint.org/docs/rules/no-extra-semi"},// 是否会修复代码,需要实现 fix 功能// 如果 fixable 为 false 实现了 fix 也不会修复fixable: "code",// 表明规则是已被弃用,规则尚未被弃用,可以省略deprecated: false,// 在不支持规则的情况下,指定替换的规则replacedBy: [],// 提供配置选项,相当于如何配置的介绍文档schema: [],},//create: function(context) {return {// callback functions};}};
