前言

Eslint 解决了代码格式检查的问题,同时,一些有用的提示能让我们发现 bug 和无用代码(如 no-unused-vars, no-extra-bind, no-implicit-globals)。但是,eslint 并不能自动帮我们美化代码,自动让代码风格统一,格式优美。

EditorConfig 部分解决了这个问题,它解决了代码缩进,行末不出现空格符等问题,但是对于统一整个代码的风格,这些做得还是太少了。Prettier 很好地解决了剩下的问题,通过配置,我们可以制定想要的代码风格,然后通过脚本或编辑器插件来一键格式化/美化代码。

安装使用

安装:

  1. # 全局或本地安装二选一,都能生效
  2. npm install --save-dev prettier # 本地
  3. npm install --g prettier # 全局

命令行使用方式:

  1. prettier [opts] [filename ...]
  2. # 例子
  3. prettier --single-quote --trailing-comma es5 --write "{app,__{tests,mocks}__}/**/*.js"

编辑器设置

一般我们配合编辑器使用 Prettier,这样我们在写代码时即可美化代码,及时看到效果。以 sublime 为例,可以这么设置:

1、安装 JsPrettier 插件

首先要确定已经全局或局部安装了 prettier 的 npm 包。

  • ctrl/cmd + shift + p 输入 Install Package
  • 然后输入 JsPrettier 找到包并安装

2、使用 JsPrettier

ctrl/cmd + shift + p 输入 JsPrettier: Format Code.

image.png

点击即可格式化当前文件代码。

或者设置快捷键 { "keys": ["super+alt+f"], "command": "js_prettier" }

3、编写自己的配置文件

如果不编写自己的配置文件,一般会使用 sublime JsPrettier 插件自带的配置文件。我们希望使用项目自己的配置文件,可以在项目根目录下编写 .prettierrc 文件。

prettier 查找配置的方式首先会找当前目录下的 .prettierrc 文件,找不到会一直向上级目录查找,直到找到或找不到。

image.png

API 使用方式

https://prettier.io/docs/en/api.html

  1. const prettier = require('prettier');
  2. const plugins = [require('prettier/parser-babel')];
  3. prettierCode = prettier.format(code, { parser: 'babel', plugins,
  4. // 以下为 Prettier 配置选项.
  5. semi: true,
  6. singleQuote: true,
  7. printWidth: 100,
  8. trailingComma: 'all',
  9. proseWrap: 'never',
  10. endOfLine: 'lf',
  11. });

参考配置

.prettierrc

  1. {
  2. "printWidth": 100, // 换行字符串阈值
  3. "semi": true, // 句末加分号
  4. "singleQuote": true, // 用单引号
  5. "trailingComma": "es5", // 最后一个对象元素加逗号
  6. "bracketSpacing": true, // 对象,数组加空格
  7. "jsxBracketSameLine": false, // jsx > 是否另起一行
  8. "arrowParens": "always", // (x) => {} 是否要有小括号
  9. "requirePragma": false, // 是否要注释来决定是否格式化代码
  10. "proseWrap": "preserve" // 是否要换行
  11. }

参考文档