返回
点亮你的代码:发布你的 eslint 校验规则
前端
2024-02-14 18:16:11
想要提升代码质量?不妨尝试发布自己的 eslint 校验规则。本文将带你一步步打造和发布你的专属规则,点亮代码之路!
项目初始化
- 创建文件夹 :以 "eslint-config-*" 为名创建一个文件夹。
- 初始化项目 :使用 npm 或 yarn 初始化一个新的 npm 包。
- 自定义项目配置 :在 package.json 文件中,添加以下配置:
{
"name": "eslint-config-my-rules",
"version": "1.0.0",
"description": "My custom eslint rules",
"main": "index.js",
"scripts": {
"test": "eslint . --ext .js,.jsx"
},
"dependencies": {
"eslint": "^7.0.0"
}
}
- 目录结构 :推荐的目录结构如下:
|- eslint-config-my-rules
| |- index.js
| |- lib
| | |- rules
| |- test
编写规则
在 "lib/rules" 目录下创建规则文件,例如 "no-console.js",内容如下:
module.exports = {
meta: {
docs: {
description: "Forbid the use of console.log and console.error",
recommended: true
}
},
create(context) {
return {
"MemberExpression[object.name=console][property.name=log]": node => context.report({
node,
message: "No console.log allowed!"
}),
"MemberExpression[object.name=console][property.name=error]": node => context.report({
node,
message: "No console.error allowed!"
})
};
}
};
测试规则
在 "test" 目录下创建测试文件,例如 "no-console.test.js",内容如下:
const rule = require('../lib/rules/no-console');
const RuleTester = require('eslint').RuleTester;
const ruleTester = new RuleTester();
ruleTester.run('no-console', rule, {
valid: [
"const message = 'Hello world';",
"console.warn('This is a warning');"
],
invalid: [
{
code: "console.log('This is an error');",
errors: [{ message: "No console.log allowed!"}]
}
]
});
发布规则
- 构建项目 :运行 "npm run build" 或 "yarn build"。
- 发布包 :运行 "npm publish" 或 "yarn publish"。
使用你的规则
在你的项目中,安装你的规则包,并在 ".eslintrc.js" 文件中配置它:
module.exports = {
extends: 'eslint-config-my-rules'
};
现在,你可以享受你自己的 eslint 校验规则带来的代码质量提升了!