@momei-x/stubborn-eslint-rules
v1.1.0
Published
一个自定义的 ESLint 插件,用于限制直接使用 `localStorage` 和约束文件名命名规范,建议使用统一的存储模块和规范化的文件命名。
Readme
ESLint Plugin Stubborn
一个自定义的 ESLint 插件,用于限制直接使用 localStorage 和约束文件名命名规范,建议使用统一的存储模块和规范化的文件命名。
安装
npm install --save-dev eslint-plugin-stubborn使用
在 ESLint Flat Config 中使用
import { defineConfig } from "eslint/config";
import { createLocalEslintRule } from "eslint-plugin-stubborn/utils";
export default defineConfig([
...createLocalEslintRule({
msg: "请使用 @/storage 模块替代直接使用 localStorage",
ignores: ["tests/**", "*.config.js"], // 可选:忽略的文件
}),
]);手动配置
import plugin from "eslint-plugin-stubborn";
export default defineConfig([
{
files: ["**/*.{js,ts,jsx,tsx}"],
plugins: {
stubborn: plugin,
},
rules: {
"stubborn/no-localstorage": [
"error",
{
msg: "请使用 @/storage 模块替代直接使用 localStorage",
},
],
"stubborn/filename-case": [
"error",
{
case: "kebab", // 或 "pascal"
},
],
},
},
]);规则
stubborn/no-localstorage
禁止直接使用 localStorage,建议使用统一的存储模块。
选项
msg(string): 自定义错误消息
错误示例
// ❌ 错误
localStorage.setItem("key", "value");
localStorage.getItem("key");
window.localStorage.clear();
// ✅ 正确
import { storage } from "@/storage";
storage.setItem("key", "value");
storage.getItem("key");stubborn/filename-case
约束文件名的命名规范,支持 kebab-case 和 PascalCase。
选项
case(string): 文件名的命名规范,可选值为:"kebab":短横线命名法,例如file-name.js"pascal":帕斯卡命名法,例如FileName.js
错误示例
配置为 kebab-case
// ❌ 错误
FileName.js
fileName.js
file--name.js
// ✅ 正确
file-name.js
my-component.ts配置为 PascalCase
// ❌ 错误
file - name.js;
fileName.js;
FILEName.js;
// ✅ 正确
FileName.js;
MyComponent.ts;配置示例
import plugin from "eslint-plugin-stubborn";
export default defineConfig([
{
files: ["**/*.{js,ts,jsx,tsx}"],
plugins: {
stubborn: plugin,
},
rules: {
"stubborn/filename-case": ["error", "kebab"],
},
},
]);开发
运行测试
npm test构建
npm run build开发模式
npm run dev