3.0.1 • Published 9 months ago

@ito-frontend/eslint-config v3.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

OneAd ITO ESLint Config

Powered by @antfu/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/**/*'] },
});
// 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。
2.0.3

10 months ago

2.0.5

9 months ago

2.0.4

10 months ago

2.0.7

9 months ago

2.0.6

9 months ago

2.0.8

9 months ago

3.0.1

9 months ago

3.0.0

9 months ago

2.0.2

1 year ago

1.0.11

1 year ago

1.0.14

1 year ago

2.0.1

1 year ago

1.0.13

1 year ago

2.0.0

1 year ago

1.0.12

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago