🎨
Notes
  • 持续更新中...
  • articles
    • browser
      • 深入理解现代浏览器 - 导航
      • 深入理解现代浏览器 - 架构
      • 深入理解现代浏览器 - 交互
      • 深入理解现代浏览器 - 渲染器进程
    • dsa
      • DSA - 并查集
      • DSA - 哈希表
      • DSA - AVL 树
      • DSA - 二叉树
      • 快速选择
      • Big O 算法复杂度
      • DSA - 栈和队列
      • DSA - 前缀树 Trie
      • DSA - 图
      • DSA - 链表
      • DSA - 递归
    • typescript
      • TypeScript 学习笔记 - 任意属性 (Indexable Types)
      • 力扣的 TypeScript 面试题
      • TypeScript 学习笔记 - as const
      • TypeScript 学习笔记 - infer
    • network
      • Internet Protocol (IP)
      • 计算机网络基础
      • 如何分辨同源和同站
      • DNS 如何查询 IP 地址?
    • vue
      • Nuxt.js 入门
      • 从零实现一个 Mini Vue
      • 从零实现一个简单的 VDOM 引擎
      • 从零实现一个响应式状态管理
    • sorting
      • 排序 - 归并排序
      • 排序 - 冒泡排序
      • 排序 - 选择排序
      • 排序 - 计数排序
      • 排序 - 插入排序
    • compile
      • Compiler and Interpreter
      • Just-In-Time (JIT) Compilers
      • 编译流程
    • others
      • 什么是上下文无关语法
      • 如何在终端打印出有颜色的字
    • dev-ops
      • github-actions
        • GitHub Action 简介
        • GitHub Actions for CI
    • workflow
      • 用 Node 写一个 cli
      • 如何规范 git commit 信息
      • 如何监听 git hooks
      • 如何规范代码风格 - prettier
      • 如何发布一个 npm package
      • 如何规范代码质量 - eslint
    • design-pattern
      • 代理模式
      • 单例模式
      • 策略模式
    • security
      • 点击劫持
      • CSP 内容安全策略
    • javascript
      • 尾调用优化
      • 4种常见的内存泄漏及解决方法
    • unit-test
      • Test Vuejs Application - Chapter 2
      • Test Vuejs Application - Chapter 1
      • Vue Unit Test Intro
    • performance
      • HTTP 缓存
      • 如何优化图片资源
Powered by GitBook
On this page
  • Prettier
  • husky
  • lint-staged

Was this helpful?

  1. articles
  2. workflow

如何规范代码风格 - prettier

Previous如何监听 git hooksNext如何发布一个 npm package

Last updated 4 years ago

Was this helpful?

Prettier

Prettier 是一个自动格式化代码的工具。

安装

npm i -D prettier

配置

// .prettierrc.json
{}

定义 .prettierignore 告诉 prettier 哪些文件不用管:

# .prettierignore
# Ignore artifacts:
build
coverage

使用

npx prettier --write .
  • 会格式化所有文件(改写)

  • 也可以指定要格式化的文件路径:prettier --write "app/**/*.test.js"

prettier --check .
  • 只会检查文件格式有没有符合要求,并不会改写文件

编辑器

当然,命令行的使用方式并不常用,我们更多是让编辑器帮我们自动格式化。

VSCode 可以安装 Prettier - Code formatter 插件。

注意:记得在项目本地安装 prettier。

ESlint

  • prettier 是用来规范代码风格的,比如缩进多少、加不加分号之类的。

  • eslint 更多是用来规范代码质量的,比如能不能有声明了但是不用的变量,能不能定义隐式全局变量这类规则。

husky

虽然项目中是安装了 prettier,但不能保证每个人都能主动运行命令或者是配置编辑器。

所以,我们还是需要工具来自动检查和格式化。

// package.json
{
    "husky": {
        "hooks": {
            "pre-commit": "prettier --write . && git add -A ."
        }
    }
}
  • 执行 prettier --write . 格式化所有代码

  • 执行 git add 把所有修改的文件加入暂存区,一起提交

lint-staged

不过 prettier --write . 每次都会格式化所有文件,但其实我们只需要检查有修改的文件就好了。

lint-staged 就是用来解决这个问题的。

安装

npm i -D lint-staged

配置

// package.json
{
    "husky": {
        "hooks": {
            "pre-commit": "lint-staged"
        }
    },
    "lint-staged": {
        "*": "prettier --write"
    }
}

原理

简单地说,lint-staged 就是把改动文件的路径加到了 prettier --write 命令后面。

同时它还把修改文件暂存了,我们也不需要 git add -A . 了。

如果项目同时也使用 ESlint 的话,需要安装 ,然后在 eslint 配置中加上 extends: ['prettier']。它会关掉 ESlint 中不需要的或者跟 prettier 有冲突的规则。

已经介绍过 husky 是干什么的了。

其他配置文件形式
配置选项
配置编辑器
eslint-config-prettier
这里