@jannajs/lint v3.1.0
@jannajs/lint
代码规范初始化工具
功能特色
基于 @antfu/eslint-config 定制,默认禁用 vue,开启 react 支持。特别的,支持 Next.js 规则,tailwind 规则。
- .editorconfig
- eslint.config.ts
- commitlint.config.ts
如何使用
$ npm i -D @jannajs/lint
# yarn add -D @jannajs/lint
# pnpm add -D @jannajs/lint
$ npx --no -- @jannajs/lint init
# 审查当前项目的 eslint 规则详情
$ npx @eslint/config-inspector
VS Code 支持
参考该配置。
{
// Disable the default formatter, use eslint instead
"prettier.enable": false,
"editor.formatOnSave": false,
// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},
// Silent the stylistic rules in you IDE, but still auto fix them
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "off", "fixable": true },
{ "rule": "format/*", "severity": "off", "fixable": true },
{ "rule": "*-indent", "severity": "off", "fixable": true },
{ "rule": "*-spacing", "severity": "off", "fixable": true },
{ "rule": "*-spaces", "severity": "off", "fixable": true },
{ "rule": "*-order", "severity": "off", "fixable": true },
{ "rule": "*-dangle", "severity": "off", "fixable": true },
{ "rule": "*-newline", "severity": "off", "fixable": true },
{ "rule": "*quotes", "severity": "off", "fixable": true },
{ "rule": "*semi", "severity": "off", "fixable": true }
],
// Enable eslint for all supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml",
"toml",
"xml",
"gql",
"graphql",
"astro",
"svelte",
"css",
"less",
"scss",
"pcss",
"postcss"
]
}
Next.js
要启用 Next.js 支持,你需要显式地启用:
// eslint.config.js
import janna from '@jannajs/lint/eslint'
export default janna({
next: true
})
运行 npx eslint
会提示你安装所需的依赖项,当然,你可以手动安装它们:
npm i -D @next/eslint-plugin-next
Tailwind CSS
要启用 Tailwind CSS 支持,你需要显式地启用:
// eslint.config.js
import janna from '@jannajs/lint/eslint'
export default janna({
tailwind: true
})
运行 npx eslint
会提示你安装所需的依赖项,当然,你可以手动安装它们:
npm i -D eslint-plugin-tailwindcss
文档说明
- ESLint flat config 在 monorepo 下如何使用?
- Ignore Files - ESLint - Pluggable JavaScript Linter
- 测试 glob 模式匹配
- Ignoring Code · Prettier
开发调试
commitlint 调试
echo "foo" | npx commitlint
echo "feat\!: foo" | npx commitlint
echo "feat(module)\!: foo" | npx commitlint
echo "feat(模块)\!: foo" | npx commitlint
注意事项
报错形如 Error ERR_REQUIRE_ESM: Must use import to load ES Module: **/*/commitlint.config.ts
commitlint
使用 ts-node
加载模块导致,package.json
没有配置 "type": "module"
,如果确实不配置,那么可以尝试将 commitlint.config.ts
重命名为 commitlint.config.cts
。
8 months ago
8 months ago
9 months ago
9 months ago
12 months ago
12 months ago
12 months ago
12 months ago
10 months ago
10 months ago
11 months ago
10 months ago
10 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago