Nodejs 代码格式化工具 esformatter 及小插件分享

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

Nodejs 代码格式化工具 esformatter 及小插件分享

原帖发在 CNodejs.org https://cnodejs.org/topic/573f17b3fcf698421d20371c


esformatter 使用了 babylon 作为 parser, 支持 async function / es6 module import 等等啊, 比较好使 这里写了一个小插件 esformatter-curly https://github.com/magicdawn/esformatter-curly 例如下面的代码

import multiline

import {
  x as X,
  y as Y
} from 'utils'

会被格式化成一行(默认)

import { x as X, y as Y } from 'utils'

使用这个 esformatter-curly 可以避免这个现象, 如果原来是多行的, 使用这个插件之后, 给你保留多行

inline object

像下面这个对象字面两, 会被格式化成多行(默认)

var o = { x: 'hello', y: 'world' }

格式化成

var o = {
  x: 'hello',
  y: 'world'
}

有了这个插件之后可以避免这种状况, 如果你原来是单行的, 使用这个插件, 检测到是单行的, 就给你保留

插件地址 https://github.com/magicdawn/esformatter-curly 求 star, 另这个 esformatter 真的比较强大, 自己写插件可以 limit linebreak indent whitespace 等等... 写点自定义的插件比较好玩...


3 回复

atom 里面早就用上了


后续我会分享一下他的文档, 以及 plugin 的写法~如果有现有翻译的, 请告诉我一声, 免得重复劳动

在Node.js开发中,代码格式化是提高代码可读性和维护性的重要环节。esformatter是一款基于抽象语法树(AST)的JavaScript代码格式化工具,它能够帮助开发者自动保持代码风格的一致性,提升代码质量。

尽管esformatter项目目前已不再维护,但其核心价值和实用性依然值得关注。它利用AST深入解析代码结构,不仅进行简单的换行和缩进处理,还支持自定义配置,通过添加不同的插件来扩展功能。例如,esformatter-braces插件可以统一代码的括号样式。

以下是esformatter的基本使用方法:

  1. 安装esformatter:
npm install -g esformatter
  1. 使用esformatter格式化代码:
esformatter input.js > output.js

此外,esformatter还支持通过API集成到构建流程或编辑器插件中。对于团队协作,保证所有成员提交的代码风格一致至关重要,esformatter能够显著减少代码审查时因风格差异产生的纷争。

除了esformatter,还有其他流行的Node.js代码格式化工具,如Prettier。Prettier支持多种语言,并且可以通过配置文件来调整格式化规则。使用Prettier也非常简单,只需通过npm或yarn安装,并在项目根目录下创建配置文件(如.prettierrc)来指定格式化选项。

无论是esformatter还是Prettier,都可以大大提高代码的可读性和团队协作效率。建议开发者根据项目需求和个人偏好选择合适的代码格式化工具,并将其集成到开发流程中,确保每次提交的代码都符合团队的代码规范。

回到顶部