Prettier 是一个代码格式化工具,支持 JavaScript、JSON、TypeScript、GraphQL、CSS、HTML、Markdown、Vue、JSx 等语言和工具。
你可以在项目编辑器中或者在项目脚手架使用 Prettier 格式化代码,来确保项目中的代码有一致的风格。下面是一个简单的例子:
// 格式化前
function HelloWorld() {
return "Hello" + "World";
}
// 格式化后
function HelloWorld() {
return "Hello" + "World"
}
配置
Prettier 的配置文件可以是一个名为 .prettierrc
的 JSON 文件。存放在项目的根目录下面,或者在操作系统的 HOME 目录下。
比如:
{
"parser": "babel",
"trailingComma": "es5",
"tabWidth": 2,
"semi": false,
"singleQuote": true
}
更多配置请参看 Prettier 文档。
Prettier CLI, 编辑器的 Prettier 插件和其它 Prettier 工具都会读取这个配置文件。
NPM 包
如果需要调用 Prettier 的 API 进行格式化,就要安装 prettier
模块。
// 使用 npm
npm install prettier --save-dev
// 使用 yarn
yarn add prettier --dev
然后就可以在项目使用 Prettier 的 API:
// index.mjs
import prettier from "prettier";
const options = {
semi: false,
parser: "babel",
};
const formatResult = prettier.format("foo();", options);
console.log("formatResult:", formatResult);
// output: "formatResult: foo()"
const checkResult = prettier.check("foo();", options);
console.log("checkResult:", checkResult);
// output: "checkResult: false"
更多配置信息。
Prettier CLI
NPM 的 prettier 包可以用于命令行格式化代码。在不全局安装的情况下,可以用 npx 配合使用。
下面这行命令将会格式化当前目录下的所有文件:
npx prettier --write .
在浏览器环境中使用
Prettier 也可以不依赖 Node.js 在浏览器环境中使用,但是无法自动加载配置文件和插件。
<script src="https://unpkg.com/prettier@2.5.1/standalone.js"></script>
<script src="https://unpkg.com/prettier@2.5.1/parser-babel.js"></script>
<script>
const formatResult = prettier.format("foo();", {
parser: "babel",
semi: false,
plugins: prettierPlugins,
});
console.log("formatResult:", formatResult); // output: "formatResult: foo()"
</script>
在线格式化
Prettier 提供了一个 在线格式化 playground。
配合其它工具使用
通常我们会使用 Linter 来检查代码的规范,比如 ESLint、TSLint、Stylelint。他们在某些规则上会与 Prettier 相互矛盾。
解决这个问题我以 ESLint 为例,安装 eslint-config-prettier
,并在 ESLint 的配置文件的 extends
添加 prettier
。
// .eslintrc.json
{····
"extends": ["eslint:recommended", "prettier"]
}
TSLint 和 Stylelint 如法炮制。具体可参看以下项目:
本篇文章发布于 blog.esonwong.com/prettier/