如何使用 JS 格式化工具提升开发效率

工具相关 ·

在快节奏的前端开发中,手动格式化代码是低效的。掌握格式化工具的正确使用方式,能显著提升开发效率。

工具选择

在线工具

适用场景:临时处理、快速查看

优势:

  • 无需安装
  • 跨平台
  • 即时使用

推荐:本工具的 JS 格式化功能

编辑器插件

适用场景:日常开发

编辑器推荐插件
VS CodePrettier
WebStorm内置格式化
SublimeJsFormat
Vim/Neovimcoc-prettier

命令行工具

适用场景:批量处理、CI/CD

# Prettier
npx prettier --write "src/**/*.js"

# ESLint
npx eslint --fix "src/**/*.js"

工作流集成

1. 保存时自动格式化

VS Code

// settings.json
{
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}

WebStorm

Settings > Languages & Frameworks > JavaScript > Prettier
- On save: 勾选

2. Git Hook 自动格式化

// package.json
{
    "husky": {
        "hooks": {
            "pre-commit": "lint-staged"
        }
    },
    "lint-staged": {
        "*.js": [
            "prettier --write",
            "eslint --fix",
            "git add"
        ]
    }
}

3. CI/CD 检查

# .github/workflows/lint.yml
name: Lint
on: [push, pull_request]
jobs:
    lint:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v3
            - uses: actions/setup-node@v3
            - run: npm ci
            - run: npm run lint
            - run: npm run format:check

高效使用技巧

1. 快捷键

VS Code:
- 格式化文档:Shift + Alt + F
- 格式化选区:Ctrl + K, Ctrl + F
- 快速修复:Ctrl + .

WebStorm:
- 格式化代码:Ctrl + Alt + L (Win) / Cmd + Option + L (Mac)
- 优化导入:Ctrl + Alt + O

2. 局部格式化

// prettier-ignore
const uglyCode = {a:1,b:2,c:3,d:4,e:5};

// 或使用注释控制
// prettier-ignore-start
const special = {
    custom: 'formatting'
};
// prettier-ignore-end

3. 批量处理

# 格式化整个项目
npx prettier --write "src/**/*.{js,ts,jsx,tsx}"

# 检查格式(不修改)
npx prettier --check "src/**/*.js"

# 只格式化修改的文件
git diff --name-only --diff-filter=d | grep '\.js$' | xargs npx prettier --write

团队协作

1. 统一配置

// .prettierrc(提交到仓库)
{
    "semi": true,
    "singleQuote": true,
    "tabWidth": 4,
    "trailingComma": "es5",
    "printWidth": 100
}

// .editorconfig
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

2. 代码审查

## 格式规范检查清单

- [ ] 代码已格式化
- [ ] 无格式相关的 diff
- [ ] 导入已排序
- [ ] 无多余空行

3. 新人引导

## 开发环境设置

1. 安装 VS Code
2. 安装 Prettier 插件
3. 安装 ESLint 插件
4. 运行 `npm install`
5. 确认保存时自动格式化已开启

常见问题

问题一:格式化后代码被破坏

原因:格式化工具不理解特殊语法

解决:

// 使用注释跳过
// prettier-ignore
const special = eval('...');

问题二:团队配置不一致

原因:个人配置覆盖了项目配置

解决:

// .vscode/settings.json(项目级)
{
    "prettier.configPath": ".prettierrc"
}

问题三:格式化速度慢

原因:大文件或网络问题

解决:

  • 使用本地安装而非 npx
  • 排除不需要格式化的目录
  • 使用缓存

性能优化

1. 排除不需要格式化的文件

// .prettierignore
node_modules/
dist/
build/
coverage/
*.min.js

2. 增量格式化

# 只格式化 git 修改的文件
git diff --name-only --diff-filter=ACM | grep '\.js$' | xargs npx prettier --write

3. 缓存机制

// 自定义脚本,只格式化修改的文件
const { execSync } = require('child_process');
const fs = require('fs');
const crypto = require('crypto');

function getHash(content) {
    return crypto.createHash('md5').update(content).digest('hex');
}

// 检查缓存,跳过未修改的文件

最佳实践

  1. 项目初始化时配置:不要等到代码混乱后再格式化
  2. 自动化一切:保存时格式化、提交时检查
  3. 让工具决定:减少人工干预,避免风格争论
  4. 定期更新工具:获取最新的格式化规则
  5. 文档化规范:让新人快速了解团队风格

总结

JS 格式化工具是提升开发效率的利器。通过正确的配置、工作流集成和团队协作,可以让开发者专注于业务逻辑,而非代码格式。

阅读 13