Skip to content

@falconix/configs

falconix 公共配置文件集合

安装

shell
pnpm i @falconix/configs

tsconfig

基于 @vue/tsconfig

提供三种tsconfig

  • app,提供给一般web应用使用

    json
    {
      "extends": "@falconix/configs/tsconfig/app.json",
      "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
    }
  • lib,提供给需要打包发布组件、库使用

    json
    {
      "extends": "@falconix/configs/tsconfig/lib.json",
      "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
    }
  • node,提供给node文件使用,比如vite.config.ts

    json
    {
      "extends": "@falconix/configs/tsconfig/node.json",
      "include": ["lib"]
    }

eslint config

基于 @antfu/eslint-configESLint v9

提供两种配置

  • app,提供给一般web应用使用

    ts
    import config from '@falconix/configs/eslint/app.js'
    
    export default config()
  • lib,提供给需要打包发布组件、库使用

    ts
    import config from '@falconix/configs/eslint/lib.js'
    
    export default config()

注意事项

  • 使用前,请安装 VS Code ESLint extension 插件

  • 代码格式化基于eslint,请禁止prettier相关的插件及功能

  • 需要配合 Vs Code 设置 .vscode/settings.json,添加如下配置

    json
    {
      // 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 your 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"
      ]
    }