Project-Ideas:前端Prettier代码格式化

Project-Ideas:前端Prettier代码格式化

【免费下载链接】Project-Ideas-And-Resources A Collection of application ideas that can be used to improve your coding skills ❤. 【免费下载链接】Project-Ideas-And-Resources 项目地址: https://gitcode.com/GitHub_Trending/pr/Project-Ideas-And-Resources

为什么需要代码格式化工具

在多人协作的前端项目中,代码格式不一致往往导致大量无意义的争论和时间浪费。Prettier(代码格式化工具)通过自动化处理代码格式,让开发者专注于逻辑实现而非样式调整,显著提升团队协作效率。

格式化工具对比

工具特点适用场景
Prettier专注格式化,零配置理念全前端项目统一格式
ESLint代码质量检查+基础格式化需要严格代码规范的场景
Standard.js强制统一规范,不可配置小型项目或快速原型

mermaid

Prettier工作原理

Prettier采用AST(抽象语法树)驱动的代码重写方式,工作流程如下:

mermaid

这种方式相比传统正则替换更可靠,能处理复杂代码结构而不破坏逻辑。

快速上手

安装与基础配置

# 安装核心包
npm install --save-dev prettier

# 创建配置文件
echo '{
  "semi": true,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "es5"
}' > .prettierrc

# 创建忽略文件
echo 'node_modules
dist
build
*.log' > .prettierignore

添加脚本命令

在package.json中添加:

{
  "scripts": {
    "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md}'",
    "format:check": "prettier --check 'src/**/*.{js,jsx,ts,tsx,css,md}'"
  }
}

核心配置详解

配置项类型默认值说明
printWidthnumber80每行最大字符数
tabWidthnumber2缩进宽度
singleQuotebooleanfalse使用单引号
trailingCommastring"es5"尾随逗号规则
arrowParensstring"avoid"箭头函数参数括号
jsxSingleQuotebooleanfalseJSX使用单引号
bracketSpacingbooleantrue对象字面量空格

框架集成方案

React项目配置

{
  "printWidth": 100,
  "singleQuote": true,
  "jsxSingleQuote": true,
  "trailingComma": "all",
  "arrowParens": "always"
}

格式化效果对比:

// 格式化前
function App(){return <div className="App"><h1>Hello World</h1></div>;}

// 格式化后
function App() {
  return (
    <div className='App'>
      <h1>Hello World</h1>
    </div>
  );
}

Vue项目配置

{
  "singleQuote": true,
  "trailingComma": "es5",
  "vueIndentScriptAndStyle": true
}

TypeScript项目配置

{
  "parser": "typescript",
  "singleQuote": true,
  "trailingComma": "all",
  "arrowParens": "always"
}

自动化工作流

编辑器集成(VS Code)

  1. 安装插件:
code --install-extension esbenp.prettier-vscode
  1. 配置自动格式化:
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.formatOnPaste": true
}

Git提交自动化

# 安装依赖
npm install --save-dev husky lint-staged

echo '{"lint-staged": {"*.{js,jsx,ts,tsx,css,md}": ["prettier --write"]}}' >> package.json

npx husky install
npx husky add .husky/pre-commit "npx lint-staged"

CI/CD集成(GitHub Actions)

创建.github/workflows/format-check.yml

name: Format Check
on: [pull_request]
jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
      - run: npm ci
      - run: npm run format:check

高级使用技巧

局部禁用格式化

// prettier-ignore
const unformatted = { foo: 'bar', baz: 'qux' };

/* prettier-ignore-start */
const multiLineIgnored = {
  key1: 'value1',
  key2: 'value2'
};
/* prettier-ignore-end */

性能优化(大型项目)

  1. 使用.prettierignore排除构建产物
  2. 结合--cache参数缓存结果:
prettier --write --cache 'src/**/*.js'
  1. 升级到Prettier 3.0+版本

常见问题解决方案

问题解决方案
与ESLint冲突安装eslint-config-prettier
Vue单文件组件格式化配置vueIndentScriptAndStyle: true
特殊文件不格式化使用.prettierignore或注释忽略

学习资源

  • 官方文档:https://prettier.io/docs/en/
  • 配置游乐场:https://prettier.io/playground/
  • 插件列表:https://github.com/prettier/awesome-prettier

点赞👍收藏⭐关注,获取更多前端工程化实践指南!

下期预告:《ESLint+Prettier完美协作指南》

【免费下载链接】Project-Ideas-And-Resources A Collection of application ideas that can be used to improve your coding skills ❤. 【免费下载链接】Project-Ideas-And-Resources 项目地址: https://gitcode.com/GitHub_Trending/pr/Project-Ideas-And-Resources

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值