Skip to content
On this page

创建一个自定义规则

此篇因为需要涉及的内容比较多 所以我们通过实战的方式去学习

目标

  • 报告过时的函数
  • 解决 ESlint 在 monorepo 中.eslintignore不在当前 package 中的子项目生效的原因

Coding

  • 解决 ESLint 在 monorepo 中.eslintignore文件不生效的问题.在vscodesettings.json新增

    image-20220627141145579

  • 在项目中创建rules文件夹并创建文件这个文件夹和文件名字可以自定义

    image-20220627141325858

  • 在文件中导出一个函数

module.exports = {
  meta:{
    fixable:"code"
  },
  create(context) {
    return {
      FunctionDeclaration: function (node) {
        if (node.id.name === 'deprecatedSayHello') {
          context.report({
            node,
            message: '该函数已过时,请更换为SayHello',
            fix: function (fixer) {
              return fixer.replaceText(node.id, 'SayHello');
            },
          });
        }
      },
    };
  }
};


运行及效果

  • 在 .eslintrc 文件中添加自定义的规则

    image-20220627144505442

  • 创建一个过时的函数

image-20220627144532260

  • 在命令行运行 eslint 并使用后缀--rules在命令行添加自定义规则

image-20220627144647370

  • 自定义规则生效了~~~

image-20220627144748071

Released under the MIT License.