.prettierrc
文件配置格式化规则,方便项目统一管理。你可以通过 npm 或 yarn 安装 Prettier:
npm install --save-dev prettier
# 或者使用 yarn
yarn add --dev prettier
初始化项目
在项目根目录下创建一个 .prettierrc
配置文件:
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5"
}
格式化文件
通过命令行格式化文件:
npx prettier --write src/index.js
# 或者使用 yarn
yarn prettier --write src/index.js
Prettier 支持多种配置文件格式,包括 JSON、YAML 和 JavaScript。可以在项目根目录创建 .prettierrc
文件来配置 Prettier:
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"tabWidth": 2,
"useTabs": false,
"printWidth": 80,
"bracketSpacing": true,
"jsxSingleQuote": false,
"arrowParens": "avoid"
}
semi: true
singleQuote: true
trailingComma: es5
tabWidth: 2
useTabs: false
printWidth: 80
bracketSpacing: true
jsxSingleQuote: false
arrowParens: avoid
module.exports = {
semi: true,
singleQuote: true,
trailingComma: 'es5',
tabWidth: 2,
useTabs: false,
printWidth: 80,
bracketSpacing: true,
jsxSingleQuote: false,
arrowParens: 'avoid',
};
安装 Prettier 插件:在 VS Code 中搜索并安装 Prettier 插件。
配置自动格式化:在 settings.json
中添加以下配置:
{
"editor.formatOnSave": true,
"prettier.singleQuote": true,
"prettier.semi": true
}
Preferences > Package Settings > Prettier
中进行配置。prettier-atom
插件。Format On Save
选项。.vimrc
文件中添加相关配置。以下是一个更复杂的示例配置,包含多种格式化选项:
{
"semi": false,
"singleQuote": true,
"trailingComma": "all",
"tabWidth": 4,
"useTabs": false,
"printWidth": 100,
"bracketSpacing": true,
"jsxSingleQuote": true,
"arrowParens": "always"
}
好的,这是Prettier所有参数配置的详细说明表格:
参数名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
printWidth | 数字 | 80 | 每行最大长度。 |
tabWidth | 数字 | 2 | 一个tab相当于的空格数。 |
useTabs | 布尔值 | false | 是否使用tab代替空格。 |
semi | 布尔值 | true | 行尾是否加分号。 |
singleQuote | 布尔值 | false | 使用单引号代替双引号。 |
quoteProps | 字符串 | as-needed | 对象属性的引号使用策略:as-needed 、consistent 、preserve 。 |
jsxSingleQuote | 布尔值 | false | 在JSX中使用单引号代替双引号。 |
trailingComma | 字符串 | es5 | 尾随逗号:none 、es5 、all 。 |
bracketSpacing | 布尔值 | true | 对象文字中括号内前后是否加空格。 |
jsxBracketSameLine | 布尔值 | false | 在多行JSX元素的最后一个属性之后是否将闭合括号放在同一行。 |
arrowParens | 字符串 | always | 箭头函数参数使用圆括号:always 、avoid 。 |
rangeStart | 数字 | 0 | 格式化文件时,文件的起始位置。 |
rangeEnd | 数字 | Infinity | 格式化文件时,文件的结束位置。 |
parser | 字符串 | 自动检测 | 指定使用的解析器。 |
filePath | 字符串 | none | 指定输入文件路径,这将影响解析器推断。 |
requirePragma | 布尔值 | false | 格式化时是否需要文件顶部的特殊注释。 |
insertPragma | 布尔值 | false | 是否在文件顶部插入格式化信息的特殊注释。 |
proseWrap | 字符串 | preserve | 控制Markdown文本的换行方式:always 、never 、preserve 。 |
htmlWhitespaceSensitivity | 字符串 | css | HTML文件中空白的敏感度:css 、strict 、ignore 。 |
vueIndentScriptAndStyle | 布尔值 | false | 是否缩进Vue文件中的script 和style 标签内容。 |
endOfLine | 字符串 | lf | 换行符:lf 、crlf 、cr 、auto 。 |
embeddedLanguageFormatting | 字符串 | auto | 控制在Markdown文件中是否格式化嵌入的代码块。 |
你可以在项目根目录创建 .prettierignore
文件,指定不需要格式化的文件或目录。其语法与 .gitignore
类似。
示例:
node_modules/
dist/
build/
*.min.js
你可以在代码中使用特殊注释来忽略特定代码块的格式化。
// prettier-ignore
const example = {unformatted: true};
可以使用 husky
和 lint-staged
在提交代码前自动格式化:
安装依赖:
npm install --save-dev husky lint-staged
配置 package.json
:
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx}": ["prettier --write"]
}
}