ESLint 插件
ESLint 插件是一个可以包含一系列ESLint 规则、配置、处理器、环境的npm模块。
创建插件
开发ESLint插件可以使用Yeoman提供的生成器来生成ESLint插件的基本项目的目录结构。
-
安装yeoman 和ESLint 规则的生成器
npm i -g yo generator-eslint
-
创建
eslint-xxxx
使用yo eslint
命令回答一系列问题即可生成项目目录并自动安装对应的依赖。
-
添加规则
新增的规则应该放在lib
文件夹下的rules
文件夹中,文件名即是规则名。在这里我们创建一个禁止函数命名为xxx
的规则// lib/rules/no-function-xxx.js module.exports = { meta: { type: "problem", messages: { someMessageId: "函数命名不可使用 `xxx` 请修改", }, docs: { description: "函数名 `xxx` 不符合规则不建议使用", }, schema: [], }, create(context) { function checkFunctionName(node) { if (node.id.name === "xxx") { context.report({ node: node, messageId: "someMessageId", }); } } return { FunctionDeclaration: checkFunctionName, }; }, };
创建规则的时候,同在在lib的同级目录下创建 docs/rules目录,在rules目录下创建和规则同名的markdown文件
docs/rules/no-function-xxx.md
之后可以直接使用update:eslint-docs
命令让eslint自动根据相关信息更新相关文档。
如果没有创建可以使用--init-rule-docs
初始化规则的文档
应用插件
发布npm包到本地
使用 npm link
将当前的包链接到本地全局模块,由于我们自己开发的npm并没有发布,所以通过npm link命令将该包发布到本地,然后在需要使用的项目中通过npm link
安装。
安装并配置
在要使用这个插件的项目中运行 npm link -D eslint-plugin-xxxx
命令安装插件包。然后更新 .eslintrc.js
配置文件
直接引入插件的时候可以忽略插件的eslint-plugin-
前缀,只需要在plugins
中输入xxxx
即可。引入的插件默认规则都是关闭的,所以需要手动在rules
中开启
// .eslintrc.js
module.exports = {
root: true,
plugins: ["xxxx"],
rules: {
"xxxx/no-function-xxx":