是否有命令行工具可轻松重构并格式化JavaScript代码?
嘿,这两个问题我刚好有不少实用的命令行工具可以分享给你,分两部分来说:
重构JS代码的命令行工具主要分两类:轻量自动修复类和批量自定义重构类,推荐这几个:
ESLint:它不只是代码检查工具,开启
--fix参数后能自动修复很多常见的代码风格问题,甚至完成一些简单的重构操作——比如把var替换成let/const、自动补全箭头函数括号、修复不符合规范的缩进等等。用法很简单:eslint --fix your-js-file.js你还可以通过
.eslintrc配置文件自定义规则,让它适配你的项目重构需求。jscodeshift:如果需要批量、自定义的代码重构(比如整个项目里替换某个旧API的调用方式、统一组件的导入格式),jscodeshift绝对是首选。它基于AST(抽象语法树)处理代码,社区有很多现成的转换脚本,你也可以自己写转换逻辑。举个例子,用现成脚本批量转换
var为let/const:jscodeshift -t scripts/var-to-let.js your-project-directory/Prettier + ESLint 组合:Prettier负责统一代码风格(换行、缩进、引号等),ESLint处理代码质量和重构规则,两者配合可以兼顾格式化和轻量重构,很多团队都用这套组合做日常代码维护。
你遇到的那种单行压缩JS,本质是经过minify处理的代码,用这些命令行工具可以快速恢复可读性:
Prettier:最省心的选择,不管代码多混乱,它都能自动帮你添加合适的换行、缩进,甚至调整代码结构。直接运行:
prettier --write your-minified-file.js如果是直接从网页下载代码,还可以用管道一步到位:
curl http://js.live.net/v5.0/wl.js | prettier --parser babel > formatted-wl.js这样下载的单行代码会直接被格式化到
formatted-wl.js里。js-beautify:专门针对代码美化的工具,参数非常灵活,你可以自定义缩进大小、换行风格、是否保留空格等。比如要把单行代码格式化后输出到新文件:
js-beautify your-minified-file.js > formatted-file.js如果想直接覆盖原文件,加上
-r参数:js-beautify -r your-minified-file.jsESLint --fix:如果你已经在项目里配置了ESLint,也可以用它来格式化压缩代码,不过相比前两个工具,它更侧重符合规则的修复,Prettier在处理极端压缩的代码时表现更稳定。
内容的提问来源于stack exchange,提问作者Rafael M.

