当前位置: 首页 > news >正文

Prettier代码格式化工具测评:支持JS/TS/Vue多语言,兼容ESLint实现团队代码格式统一

之前跟你们聊过能快速提取文档信息的 ChatDOC,今天换个偏开发效率的方向 —— 给你们安利一个 Github 上的「Prettier」,仓库地址是https://github.com/prettier/prettier,它是个代码格式化工具,不管你写的代码缩进乱、括号不对齐,还是换行不统一,它都能一键整理成规范格式,不用再手动调缩进、对齐括号,小索奇上次跟同事协作写 React 组件,他写的代码缩进全是 2 个空格,我习惯用 4 个空格,用 Prettier 一键格式化后,格式立马统一,再也不用因为 “缩进用 2 个还是 4 个空格” 争论了!

你有没有过看别人写的代码看到头大的经历?比如打开一个 JS 文件,有的函数括号跟函数名在同一行,有的括号单独换行;有的语句结尾加了分号,有的没加;缩进一会儿 2 个空格,一会儿 4 个空格,看得眼睛都花了,想改代码都得先花时间整理格式。但用 Prettier 就不一样,不管原代码格式多乱,只要运行 Prettier,它会按照预设规则(比如缩进 4 个空格、语句结尾加分号、括号单独换行)自动调整,比如原代码是这样的:

function add (a,b){return a+b}

const result=add (1,2)

console.log (result)

格式化后会变成:

function add (a, b) {

return a + b;

}

const result = add (1, 2);

console.log (result);

变量之间加空格、括号单独换行、语句结尾加分号,整整齐齐,不管是谁写的代码,格式化后风格都统一,看代码的效率都变高了。小索奇现在写代码前,都会先开 Prettier 自动格式化,再也不用花时间纠结格式细节。

而且它支持的语言特别多,除了 JavaScript、TypeScript,还有 CSS、HTML、Vue、React 的 JSX 文件,甚至连 Markdown 文档都能格式化。比如写 Vue 组件时,模板里的标签缩进乱了,运行 Prettier 后,标签会自动对齐;写 Markdown 时,列表缩进不对,格式化后会统一列表层级,不用再手动调。小索奇上次写 Markdown 文档,用它一键整理了所有列表和标题格式,比手动调整快了 5 分钟。

说到这儿可能有人会问:“怎么把它装到项目里啊?会不会配置很复杂?” 其实超简单,前端项目只要用 npm 装个 prettier 包,再在项目根目录建个.prettierrc 配置文件,写几行规则就行,比如:

{

"semi": true, // 语句结尾加分号

"singleQuote": true, // 用单引号代替双引号

"tabWidth": 4, // 缩进 4 个空格

"trailingComma": "es5" // 对象最后一个属性后加逗号

}

甚至不用自己写配置,直接用默认规则也行,装完后在 VS Code 里装个 Prettier 插件,开启 “保存时自动格式化”,每次保存文件,代码就会自动整理好,根本不用手动运行。小索奇第一次装 Prettier,跟着网上的教程,10 分钟就搞定了配置,特别简单。

它还有个超实用的功能 —— 能和 ESLint 配合使用。很多人会把 ESLint 和 Prettier 搞混,其实 ESLint 主要检查代码语法错误(比如变量未定义),Prettier 只负责格式化,两者一起用,既能保证代码语法正确,又能保证格式统一。小索奇团队的项目就是这样配置的,提交代码前会自动用 ESLint 查错,用 Prettier 格式化,代码质量和格式都有保障。

另外,它还支持忽略文件,比如项目里的 node_modules 文件夹,或者一些自动生成的代码文件,不想让 Prettier 格式化,只要在.prettierignore 文件里写上这些文件路径就行,特别灵活。小索奇上次在项目里加了.prettierignore,忽略了 dist 文件夹和自动生成的 API 文件,避免了不必要的格式化。

你们平时写代码的时候,有没有遇到过 “代码格式不统一”“看别人的代码格式乱” 的情况?或者有没有用过其他代码格式化工具?可以在评论区跟小索奇聊聊,其实统一的代码格式不仅能让代码更好看,还能减少团队协作时的摩擦,对吧?

搜索关注【即兴小索奇】,获取更多好用工具和资源


文章转载自:

http://mvowGk9i.knswz.cn
http://WvS7PeaV.knswz.cn
http://ElT1vFCs.knswz.cn
http://6HKQvoVI.knswz.cn
http://vKwBkBlQ.knswz.cn
http://Zh7DKp4Z.knswz.cn
http://xozJQNR4.knswz.cn
http://QECoJT0G.knswz.cn
http://DTSL92iM.knswz.cn
http://2BLGh2md.knswz.cn
http://yXHP7HgX.knswz.cn
http://gtgc89kL.knswz.cn
http://mKculkCu.knswz.cn
http://vVXsV7Yy.knswz.cn
http://ECdlHN65.knswz.cn
http://IJeoRBAp.knswz.cn
http://ZtnbCEHi.knswz.cn
http://OWAkvsjC.knswz.cn
http://vsuqOQID.knswz.cn
http://PDZr3Zdr.knswz.cn
http://jPxRdsp8.knswz.cn
http://HROM1K3W.knswz.cn
http://nIPvnYEg.knswz.cn
http://hyI8ZGQY.knswz.cn
http://JJMUfR7s.knswz.cn
http://yIGCuz8g.knswz.cn
http://TJwsb33Q.knswz.cn
http://7clD5EjT.knswz.cn
http://WdGiKvI4.knswz.cn
http://IBO3DRaP.knswz.cn
http://www.dtcms.com/a/362411.html

相关文章:

  • 在 PySpark 中解锁窗口函数的力量,实现高级数据转换
  • 什么是Token?——理解自然语言处理中的基本单位
  • 毕业项目推荐:68-基于yolov8/yolov5/yolo11的水稻虫害检测识别系统(Python+卷积神经网络)
  • Python OpenCV图像处理与深度学习: Python OpenCV图像配准入门
  • 深度学习中的数据增强实战:基于PyTorch的图像分类任务优化
  • 云计算学习100天-第43天-cobbler
  • 【linux仓库】万物至简的设计典范:如何用‘文件’这一个概念操纵整个Linux世界?
  • 【数据分享】土地利用shp数据分享-内蒙古
  • Python应用——ffmpeg处理音视频的常见场景
  • 谷歌AdSense套利是什么?怎么做才能赚到钱
  • 安卓QQ闪照获取软件(支持TIM)
  • 各省市信息化项目管理办法中的网络安全等级保护如何规定的?
  • 智能化企业级CRM系统开发实战:飞算JavaAI全流程体验
  • 【音视频】火山引擎实时、低延时拥塞控制算法的优化实践
  • 在 Delphi 5 中获取 Word 文档页数的方法
  • ⸢ 肆 ⸥ ⤳ 默认安全:安全建设方案 ➭ a.信息安全基线
  • 在线宠物用品|基于vue的在线宠物用品交易网站(源码+数据库+文档)
  • 从Web2到Web3:一场重塑数字未来的“静默革命”
  • OpenMMLab 模型部署利器:MMDeploy 详细介绍
  • 小学一到六年级语文/英语/数学作业出题布置网站源码 支持生成PDF和打印
  • Windows 电脑发现老是自动访问外网的域名排障步骤
  • 《微服务协作实战指南:构建全链路稳健性的防御体系》
  • 公司电脑监控软件应该怎么选择?五款超实用的公司电脑监控软件推荐
  • 云电脑是什么?与普通电脑的区别在哪里?——天翼云电脑体验推荐
  • 从电脑底层到进程创建:一篇看懂冯诺依曼、OS和进程
  • Netty从0到1系列之I/O模型
  • 基于Python毕业设计推荐:基于Django的全国降水分析可视化系统
  • 使用 qmake 生成 Makefile,Makefile 转换为 Qt 的 .pro 文件
  • npy可视化方法
  • 【Day 42】Shell-expect和sed