加点配置文件 | Day 2

在一个现代前端 Monorepo 的总包目录下,通常会包含一些说明和配置文件。对于不同的项目,这些文件会有些许差别。

本系列文章所涉及到的文件如下:

  • .editorconfig
  • .gitignore
  • LICENSE
  • eslint.config.js
  • .vscode/settings.json

.editorconfig

.editorconfig 文件是一种用于定义代码风格统一规范的配置文件。它可以帮助开发者在不同的编辑器和 IDE 中保持一致的代码格式。

此文件位于项目的根目录下,本系列文章项目的配置和解释如下:

.editorconfig 复制代码
root = true  # 表明该文件所在的目录为根目录

[*]
charset = utf-8  # 文档编码格式为 utf-8
indent_style = space  # 缩进格式为空格
indent_size = 2  # 缩进大小为两个空格
end_of_line = unset  # 行尾符格式,未设定,根据系统自动匹配
insert_final_newline = true  # 文件末尾插入新的空行
trim_trailing_whitespace = true  # 清除行结尾多余空格

.gitignore

.gitignore 文件的作用是指定 Git 版本控制系统忽略哪些文件和目录,使其不被纳入版本控制管理。

一般情况下,项目中不需要将诸如 node_modulesdist 等目录或文件纳入版本管理。因此,可以将其路径写入 .gitignore

.gitignore 复制代码
node_modules
dist

参考 vite 官方模板的 .gitignore 并结合本系列文章项目实际,如下:

.gitignore 复制代码
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

LICENSE

LICENSE 文件用来放置当前仓库的开源协议的文本内容,本系列文章的代码使用 MIT

同时,也可以在 package.json 文件中指明本 npm 包采用何种开源协议:

json 复制代码
{
    ...,
    license: "MIT"
}

eslint.config.js.vscode/settings.json

ESLint 是一个用于识别和报告 JavaScript 代码中模式的工具。它的目标是帮助开发者识别和修复代码中的问题,以提高代码的质量和可维护性。

它是通过项目根目录下的 eslint.config.js 进行配置的,可以根据官方的配置规则进行自定义配置,或者使用一些配置预设工具。

本系列文章使用的是 @antfu 大佬的一个 EsLint 配置预设工具 @antfu/eslint-config

配合 EsLint 的 VSCode 插件和预设的编辑器配置,可以做到在文件保存时和在 git commit 之前进行代码的检查和格式化。

首先,在项目总包下安装 eslint@antfu/eslint-config

bash 复制代码
pnpm add -w -D eslint @antfu/eslint-config

安装完成后,在 eslint.config.js 中加入如下配置:

js 复制代码
import antfu from '@antfu/eslint-config'

export default antfu()

接着,在总包 package.jsonscripts 中注册命令,如下:

json 复制代码
{
    //...,
    scripts: {
        // 检查当前目录下的文件
        "lint": "eslint",
        // 检查文件并修复可自动修复的格式
        "lint:fix": "eslint --fix"
    }
}

至此,就可以通过 pnpm lintpnpm lint:fix 来执行对 JavaScript 相关的文件的检查和修复操作。

配合 VSCode 的配置,可以实现在文件保存时,进行检查和自动修复,这需要在 .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 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"
  ]
}

保存后需要重启 IDE,以使该配置生效。

同时,也可以通过工具 lint-stagedsimple-git-hooks 来实现在提交代码前的代码检查和修复。

首先,在 package.json 中配置一个 npm scritps hook,并且对上述两库的行为进行配置 :

json 复制代码
{
    // ...,
    "scripts": {
        // 在安装依赖后执行 simple-git-hooks 的初始化
        "postinstall": "simple-git-hooks"
    },
    "simple-git-hooks": {
        // 在提交之前执行
        "pre-commit": "pnpm lint-staged"
    },
    "lint-staged": {
        // 对所有有更改的文件进行检查和格式修复
        "*": "eslint --fix"
    }
}

然后,安装两个库:

bash 复制代码
pnpm add -w -D lint-staged simple-git-hooks

这样,我们在提交之前,有更改的文件会被检查,以确保提交代码的语法和格式的正确性。

源码

完整仓库

本文相关 commit

相关推荐
想用offer打牌3 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX5 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法5 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
崔庆才丨静觅5 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端