Prettier是什么
为什么使用prettier
在进行多人协作开发时经常出现格式不统一的问题,比如字符串采用双引号还是单引号,句尾是否加入分号等等,虽然可以在开发之前制订一些代码风格的规则,但是随着项目的迭代,这些规则也会被束之高阁。所以需要引入一款自动的代码格式的插件,即prettier。
安装
- 安装
npm install --save-dev --save-exact prettier yarn add --dev --exact prettierpnpm add prettier -D
配置文件
创建.prettierrc.js ,在文件内以对象格式编写配置信息
module.exports ={printWidth: 80, // 行长度。不过不能只理解为最大值,而是期望值,tabWidth: 2, // 缩进长度useTabs: false, // 是否使用tab进行缩进。false指的是使用空格进行缩进semi: true, // 句尾是否打印分号singleQuote: false, // 是否使用单引号替换双引号// 对象字面量中的属性是否使用引号。// as-needed 只在需要时添加引号,比如{"my job": "programer"},其他都不添加// consistent 当有一个需要时就都添加引号// preserver 保留用户输入的quoteProps: 'as-needed',jsxSingleQuote: false, // JSX中是否使用但引号替换双引号// 多行逗号分隔的数据结构是否使用尾后逗号// es5 es5中的有效数据句尾逗号// none 无句尾逗号// all 都使用句尾逗号trailingComma: 'es5',// 对象字面了的括号是否在括号间使用空格// true -- { foo: bar }// false -- {foo: bar}bracketSpacing: true,bracketSameLine: false, // 将HTML类型结构(HTML、JSX、Vue、Angular)中的 > 符号放在最后一行的末尾而不是下一行// 单个参数的箭头函数是否使用括号包裹// always 总是进行包裹// awaid 禁止包裹arrowParens: "always",// 这两个range指的是格式化文件内部分代码的范围偏差// 没看出有什么用-.-rangeStart: 0,rangeEnd: Infinity,// parser指的是使用什么解释器,prettier会根据文件类型自动判断,所以无需设置这个选项// None 是没有默认值,可以填写babel、css等// parser: 'None',requirePragma: false, // prettier 可以指定特定的注释规则下才进行处理insertPragma: false, // 作用和requirePragma一样,但是优先级低于requirePragma// 如何包装markdown文本// always 当超过最大宽度时进行包装// never 从不进行包装// preserve 按原样进行包装proseWrap: 'preserve',// html 空白字符的检测灵敏度// css 尊重css中display的属性// strict 标签周围的空格很重要// ignore 标签周围的空格不重要htmlWhitespaceSensitivity: 'css',vueIndentScriptAndStyle: false, // 是否缩进vue文件script和style标签endOfLine: 'lf', // 行尾格式 lf crlf cr auto// 如何格式化文件中嵌入的引用代码// auto 能识别的话就进行格式化// off 不进行格式化embeddedLanguageFormatting: 'auto',}
prettier同时支持其他格式的配置文件,比如.prettierrc、.prettier.json、prettier.config.js 等。
使用
通过输入命令 npx prettier --write .对所有文件进行格式化,也可以指定路径,npx prettier --write src/app。
如果只想检查是否需要格式化可以使用命令 npx prettier --check .
集成其他lint插件
一般来说我们在项目中会用到其他的lint插件,比如进行js代码质量检测的eslint,进行css样式检测的stylelint,虽然大家的侧重点不一样,但是还是可能产生冲突,可以使用一些现有的预设配置避免这些冲突,比如:
eslint-config-prettiertslint-config-prettierstylelint-config-prettier
如果想要将prettier作为lint的检测规则可以使用以下插件:
eslint-plugin-prettiertslint-plugin-prettierstylelint-prettier
