2.0.2 • Published 9 months ago
@ito-frontend/eslint-config v2.0.2
OneAd ITO ESLint Config
Powered by @antfu/eslint-config
- 整合eslint-plugin-tailwindcss,對 tailwind class 進行排序。
- 整合eslint-plugin-simple-import-sort,對 import 進行排序。
- 由eslint-stylistic進行排版,並不會強制換行,可自行在開發時手動用 prettier 排版。
- 採用ESLint Flat Config模式(ESLint >= v8.57.0),擴充與設定更方便。
Install
pnpm add -D @ito-frontend/eslint-config
cmd+shift+p
>Preferences: Open Workspace Settings (JSON)
> 貼上。
{
"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"
]
}
- 專案新增
eslint.config.mjs
// ito工廠函數的參數
type ItoConfigParams = {
/**
* Vue的版本號
* @default 3
*/
framework?: 'vue' | 'react';
/**
* Vue的版本號
* @default 3
*/
vueVersion?: 2 | 3;
/**
* 是否有使用Tailwind
* @default false
*/
tailwind?: boolean;
/**
* 是否有使用TypeScript
* @default true
*/
typescript?: boolean;
/**
* 是否要啟用檔案命名規則
* @default false
*/
checkFile?: boolean | { enabled: boolean; ignores: [] };
/**
/**
* 其他自定義ESLint Flat Configs
* @default []
*/
otherConfigs?: TypedFlatConfigItem[];
};
// eslint.config.mjs
import ito from '@ito-frontend/eslint-config';
export default ito({
framework: 'react',
typescript: false,
tailwind: true,
checkFile: { enabled: true, ignores: ['README.md', 'src/routes/**/*'] }
});
- 想確認所有規則
// package.json
{
"scripts": {
// ...
"rules:inspect": "npx @eslint/config-inspector"
}
}
// eslint.config.mjs
import ito from '@onead-ito/eslint-config';
import pluginCypress from 'eslint-plugin-cypress/flat';
import sonarjs from 'eslint-plugin-sonarjs';
const cypressConfig = [
pluginCypress.configs.recommended,
{
rules: {
'cypress/no-unnecessary-waiting': 'off',
},
},
];
const sonarConfigs = [
sonarjs.configs.recommended,
{
plugins: {
sonarjs,
},
},
];
export default ito({
otherConfigs: [...cypressConfig, ...sonarConfigs],
});
Publish
pnpm release
,bumpp
會自動提升版號。- 到 Github 中新增 release,之後觸發 Github Actions 自動發布 package。
2.0.2
9 months ago
1.0.11
11 months ago
1.0.14
10 months ago
2.0.1
10 months ago
1.0.13
10 months ago
2.0.0
10 months ago
1.0.12
10 months ago
1.0.10
11 months ago
1.0.9
11 months ago
1.0.8
11 months ago
1.0.7
11 months ago
1.0.6
11 months ago
1.0.5
12 months ago
1.0.4
12 months ago
1.0.3
12 months ago
1.0.2
12 months ago
1.0.1
1 year ago