【前端工程化】Eslint+Prettier vue项目实现文件保存时自动代码格式化

【前端工程化】Eslint+Prettier vue项目实现文件保存时自动代码格式化

工作流程:

  1. 当保存文件时,VS Code 触发格式化
  2. ESLint 首先运行代码质量检查
  3. eslint-plugin-prettier 调用 Prettier 进行格式化
  4. eslint-config-prettier 确保 ESLint 不干涉格式化规则
  5. @vue/eslint-config-prettier 确保 Vue 单文件组件正确格式化
  6. 格式化结果自动应用到文件

实现步骤

1. 安装ESLint

  • 检查Eslint的版本,配合Prettier一起使用,需要版本大于8
package.js 复制代码
"devDependencies": {
    "eslint": "^8.0.0",
}

2. 安装在 Vue 项目中集成 ESLint 和 Prettier 所需的开发依赖包

bash 复制代码
npm install -D prettier eslint-plugin-prettier eslint-config-prettier @vue/eslint-config-prettier
  • 作用
  1. prettier

    • 代码格式化工具核心包
    • 负责实际的代码格式化工作
    • 支持 JavaScript, TypeScript, CSS, SCSS, Less, HTML, Vue 等多种语言
  2. eslint-plugin-prettier

    • 将 Prettier 作为 ESLint 插件运行
    • 允许通过 ESLint 规则运行 Prettier
    • 在 ESLint 错误中显示 Prettier 的格式化问题
    • 启用规则:"prettier/prettier": "error"
  3. eslint-config-prettier

    • 禁用所有与 Prettier 冲突的 ESLint 规则
    • 确保 ESLint 不会报告 Prettier 已处理的格式问题
    • 防止两个工具在相同问题上产生冲突报告
  4. @vue/eslint-config-prettier

    • Vue 官方提供的 Prettier 集成配置

    • 专门针对 Vue 项目优化

    • 包含:

      • eslint-config-prettier 的基础功能
      • Vue 特定规则与 Prettier 的兼容配置
      • 针对 .vue 文件的优化设置

3. 典型配置

  • .eslintrc.jspackage.json 的 eslintConfig 中,这里使用的新建配置文件.eslintrc.js.eslintignore文件和.prettierrc.prettierignore文件
.eslintrc.js 复制代码
module.exports = {

  root: true,

  env: {

    node: true,

    browser: true,

    es2021: true,

  },

  extends: [

    'plugin:vue/vue3-essential',

    'eslint:recommended',

    'prettier', // 直接使用 prettier 而不是 @vue/prettier

  ],

  plugins: ['prettier'],

  parserOptions: {

    parser: '@babel/eslint-parser',

    ecmaVersion: 2021,

    sourceType: 'module',

    requireConfigFile: false,

  },

  rules: {

    'prettier/prettier': 'warn',

    'vue/multi-word-component-names': 'off',

    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

    'vue/html-self-closing': [

      'warn',

      {

        html: {

          void: 'always',

          normal: 'always',

          component: 'always',

        },

        svg: 'always',

        math: 'always',

      },

    ],

    'vue/attribute-hyphenation': ['warn', 'always'],

    'vue/v-bind-style': ['warn', 'shorthand'],

  },

};
.eslintignore 复制代码
/public

/dist

/node_modules

src/assets/fonts/**/*.js

*.log
.prettierrc 复制代码
{

    "semi": true,

    "singleQuote": true,

    "tabWidth": 2,

    "trailingComma": "all",

    "printWidth": 100,

    "bracketSpacing": true,

    "arrowParens": "always",

    "endOfLine": "auto"

}
.prettierignore 复制代码
/dist

/node_modules

/public

src/assets/fonts/**/*.js

*.html

4. 配置 VS Code

  1. 安装 VS Code 扩展:

    • ESLint (dbaeumer.vscode-eslint)
    • Prettier - Code formatter (esbenp.prettier-vscode)
    • Volar (Vue 官方推荐扩展)
  2. 在项目根目录创建 .vscode/settings.json 文件:

settings.json 复制代码
{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "vue"
  ],
  "files.associations": {
    "*.vue": "vue"
  },
  "prettier.enable": true,
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

5. 应用更改

  1. 安装所有依赖:
bash 复制代码
npm install
  1. 测试配置是否生效:
bash 复制代码
npm run lint

6. 验证自动格式化

  1. 在 VS Code 中打开一个 Vue 文件
  2. 添加一些格式混乱的代码
  3. 保存文件(Ctrl+S)
  4. 应该会自动格式化代码

总结

  1. ESLint:作为代码质量检查的核心工具(版本≥8.0)
  2. Prettier:负责代码风格的统一格式化
  3. 集成插件
    • eslint-plugin-prettier:将 Prettier 作为 ESLint 规则运行
    • eslint-config-prettier:解决规则冲突
    • @vue/eslint-config-prettier:优化 Vue 单文件组件支持

这种配置实现了高效的自动化工作流:当开发者保存文件时,VS Code 会触发 ESLint 进行代码质量检查,然后通过 Prettier 自动应用统一的代码风格,整个过程无需人工干预。

统一代码风格是现代前端工程化的基石。通过本文介绍的 ESLint + Prettier 自动化工作流,您的 Vue 项目将获得以下关键优势:

  1. 效率提升:消除手动格式化时间,让开发者专注于核心逻辑
  2. 质量保证:实时错误检测防止低级错误进入生产环境
  3. 团队协作:统一的代码风格消除个人偏好带来的差异
  4. 专业规范:符合 Vue 官方推荐的最佳实践

"好的代码不需要解释,它自己会说话。" - Robert C. Martin

下一步建议

  1. 根据团队规范调整 .prettierrc 中的风格设置
  2. 集成 Git Hooks(如 husky + lint-staged)确保提交代码的质量
  3. 定期更新依赖版本以获取最新特性和安全修复

实践出真知:立即在您的 Vue 项目中实施这套工作流,体验自动化代码格式化带来的开发愉悦感。当每次保存文件时看到代码自动变得整洁规范,您会感谢今天的决定。

扩展阅读

让工程化工具成为您高质量代码生产的流水线,而非约束创造力的枷锁。Happy coding! 💻✨

相关推荐
崔庆才丨静觅9 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅10 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅10 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅10 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment10 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅11 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊11 小时前
jwt介绍
前端
爱敲代码的小鱼11 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax