@d-lint/filenamelint
v2.0.0
Published
文件名lint工具:
Downloads
2
Readme
@d-lint/filenamelint
文件名lint工具:
- 支持常见命名规则
- 支持自定义正则表达式
- 支持不同文件夹设置不同文件名
配置
以如下目录结构的配置为例,说明下配置规则:
- src:
- business:
handler.ts
map-logo.png
- ui:
- components:
- Panel
- PanelItem.tsx
- PanelItem.scss
index.ts
- business:
- DialogPanel
- PanelItem.tsx
- PanelItem.scss
- hooks:
usePanel.ts
- utils:
getform.ts
request.ts
index.ts
配置规则定义如下:
const whitelist = [/^index/];
module.exports = {
regexp: 'snakeCase',
root: 'src',
directories: {
business: {
regexp: {
'.ts': 'snakeCase',
'.png': 'kebabCase',
'*': 'snakeCase',
},
whitelist,
},
ui: {
directories: {
components: {
regexp: {
'.tsx': 'pascalCase',
'.scss': 'pascalCase',
'*': 'snakeCase',
},
whitelist,
},
business: {
regexp: {
'.tsx': 'pascalCase',
'.scss': 'pascalCase',
'*': 'snakeCase',
},
whitelist,
},
hooks: {
regexp: 'camelCase',
whitelist,
},
},
},
utils: {
regexp: /^[a-z]+$/
}
},
};
- root表示根目录所在位置,同层级的regexp表示全局匹配的类型
- directories表示子目录匹配规则
- regexp
- 对象形式,对于每一种扩展名的文件匹配规则;
- 字符串形式,使用预定义规则;
- 正则表达式形式,自定义匹配规则
- whitelist表示白名单规则,需用正则表达式
使用
结合lint-staged可以在代码提交的时候拦截文件名,进行检查报错
package.json
{
"name": "filenamelint demo",
"version": "0.0.1",
"description": "filenamelint's demo",
"main": "index.ts",
"repository": "[email protected]:dipper/kunyu.git",
"author": "",
"license": "MIT",
"scripts": {
},
"lint-staged": {
"*": "filenamelint -c ./filenamelint.config.js"
},
"sideEffects": true,
"devDependencies": {
"lint-staged": "^12.1.2",
},
"dependencies": {
}
}