如何自定义Eslint插件

一. 准备工作

我们需要基于generator-eslint来进行快速开发Eslint自定义插件。

1.下载Yeoman generator:

npm i -g yo

2.然后:

npm i -g generator-eslint

3.我们准备一个文件夹,可以取名为My-Eslint,在该文件夹的路径下通过命令生成创建一个插件Plugin,然后根据提示来输入对应的内容。

yo eslint:plugin

案例如下:ID也就是你的插件的名称,生成后可以在package.json文件里查看name属性,默认以eslint-plugin-为开头。
在这里插入图片描述
4.紧接着在相同路径输入命令,生成对应的规则包:

yo eslint:rule

案例如下:
在这里插入图片描述
5.生成的目录结构如下:index.js相当于入口文件,所有rules目录下定义的规则都会通过该入口来暴露。
在这里插入图片描述

二. 编写自定义组件

从上一个环节,可以发现我们定义了个max-params.js文件,我们来看下他的内容:
参考官网

module.exports = {
    meta: {
        docs: {
            description: "一个方法的参数最大数量不能超过3个",
        },
    },
    create: function (context) {
        function getFunctionParamsLoc(node) {
            const paramsLength = node.params.length;
            return {
                start: node.params[0].loc.start,
                end: node.params[paramsLength - 1].loc.end,
            };
        }
        return {
            FunctionDeclaration: (node) => {
                if (node?.params?.length > 3) {
                    context.report({
                        loc: getFunctionParamsLoc(node),
                        node,
                        message: "一个方法的参数最大数量不能超过3个",
                    });
                }
            },
        };
    },
};

然后该规则的对应test文件内容如下(可以不写):(tests/lib/rules目录下)

var ruleTester = new RuleTester();
ruleTester.run("max-params", rule, {
  valid: ["function test(d, e, f) {}"],
  invalid: [
    {
        code: "function test(a, b, c, d) {}",
        errors: [{
            message: "参数最多不能超过3个",
        }]
    },
  ],
});

三. 开启本地调试

在实际开发过程中,要用到自己定义好的插件,这个项目肯定是要发布出去的,但在本篇文章中,以本地为主,用npm link来进行模拟。

1.在该项目目录下输入npm link命令,如图:假设图中的名字为eslint-plugin-my-test
在这里插入图片描述
2.在测试项目中输入命令

npm link eslint-plugin-my-test

3.在测试项目中的.eslintrc.js文件中添加如下内容:(看下你自定义Eslint项目的name,这里为my-test
rules的格式:"插件名/规则名": "属性值",

可参考官网

// .eslintrc.js
module.exports = {
    plugins: ['my-test'],
    rules: {
        "my-test/max-params": "error",
    }
}

4.添加好后,重启Vscode,让Eslint规则生效,然后写个test.js文件:

function foo(s,s1,s3,s4){

}

5.可以发现代码报错,有对应的提示:
在这里插入图片描述
到这里就完成啦

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
要在VSCode中安装并配置ESLint插件,请按照以下步骤进行操作: 1. 打开VSCode,点击左侧的扩展图标(四个方块)或按下快捷键`Ctrl+Shift+X`来打开扩展面板。 2. 在搜索栏中输入"ESLint"并按下回车键,找到ESLint插件并点击安装按钮进行安装。 3. 安装完成后,点击"重新加载"按钮来重新加载VSCode。 4. 接下来,你需要在你的项目中安装ESLint。在终端中进入你的项目根目录,并执行以下命令: ``` npm install eslint --save-dev ``` 或者如果你使用的是Yarn: ``` yarn add eslint --dev ``` 5. 安装完成后,在终端中执行以下命令来初始化ESLint配置文件: ``` npx eslint --init ``` 这将引导你完成一个交互式的配置过程。你可以根据自己的需求选择一些配置选项,例如选择ESLint的规则(Airbnb、Standard等),或者手动配置自定义规则。 6. 完成配置后,ESLint将会生成一个`.eslintrc`文件,该文件存放着ESLint的规则配置。 7. 回到VSCode,点击左下角的设置图标(齿轮图标),选择"首选项"->"设置"来打开用户设置。 8. 在用户设置中搜索"eslint.autoFixOnSave"并勾选该选项,这将在保存文件时自动修复ESLint错误。 9. 在用户设置中搜索"eslint.validate",找到"ESLint: Validate"选项,并在其值中添加以下内容: ``` "javascript", "javascriptreact", "typescript", "typescriptreact" ``` 这将使ESLint对JavaScript、JavaScript React、TypeScript和TypeScript React文件进行验证。 现在,你已经成功安装并配置了ESLint插件。在保存文件时,ESLint将会自动运行,并根据配置的规则进行验证和修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zong_0915

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值