@ito-frontend/eslint-config

3.0.1 • Public • Published

OneAd ITO ESLint Config

Install

  1. pnpm add -D @ito-frontend/eslint-config
  2. 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"
  ]
}
  1. 專案新增eslint.config.mjs
// ito工廠函數的參數
type ItoConfigParams = {
  /**
   * 框架
   * @default 'vue'
   */
  framework?: 'vue' | 'react' | 'astro';
  /**
   * Vue的版本號
   * @default 3
   */
  vueVersion?: 2 | 3;
  /**
   * 是否有使用Tailwind
   * @default false
   */
  tailwind?: boolean;
  /**
   * 是否有使用TypeScript
   * @default true
   */
  typescript?: boolean;
  /**
   * 是否要啟用檔案命名規則
   * @default false
   */
  checkFile?:
    | boolean
    | { enabled: boolean; ignores?: []; files?: []; fileNamingStyle?: string; folderNamingStyle?: string };
  /**
  /**
   * 其他自定義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/**/*'] },
});
如果使用Astro pnpm add -D eslint-plugin-astro
新增其他Flat Configs
// 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

  1. pnpm releasebumpp會自動提升版號。
  2. 到 Github 中新增 release,之後觸發 Github Actions 自動發布 package。

Package Sidebar

Install

npm i @ito-frontend/eslint-config

Weekly Downloads

37

Version

3.0.1

License

ISC

Unpacked Size

103 kB

Total Files

4

Last publish

Collaborators

  • yungtse
  • steveonead