1

前言

相信对于各位码农来说,格式化工具并不陌生。

因为不陌生,所以没什么好介绍的。

本期主角 Rome

从官网的介绍来看,Rome是一个完整的JavaScript 工具链,集代码检测、打包、编译、测试等功能于一身。

但是,现在还没搞完,目前只有formatlint的功能。

这个工具是由Rust 语言编写的,相比于传统的js编写的格式化工具,比如Prettier,从速度上来说,称之为降维打击不为过。

官网说接近100倍提升,我使用了后的感受是确实是快到嗨甘,至于有没有100倍,没有细测,可以看下面这个图感受下,我敲下命令的时候,已经完成了。

image.png

如何使用?

  • 如果你想直接给所有项目格式化

    那么就在vsc的插件商店里搜索Rome 进行安装即可,后面把format的默认工具选择成Rome即可。(右键编辑区域 Format Document With 即可更改默认工具)

    image.png

  • 如果你仅仅想针对某个项目格式化

    那么可以安装 npm i rome -D 来安装依赖,顺便再加一个一键格式化的命令即可

    "scripts": {
      ...
      "format": "rome format src"  // src是格式化指定的目录,一般来说是src
    },

    然后跑 npm run format 就完了

配置项

在工作区的根目录下新建rome.json 即可,以下配置仅作展示,请大家以自己实际的项目情况来配置。

具体配置可以访问 Rome配置

看不懂英文的可以访问 谷歌翻译

{
  "formatter": {
    "enabled": true,
    "indentStyle": "tab",
    "lineWidth": 120
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "trailingComma": "all"
    }
  },
  "linter": {
    "enabled": true,
    "rules": {
      "complexity": {
        "useSimplifiedLogicExpression": "off"
      },
      "correctness": {
        "noDelete": "off"
      },
      "style": {
        "noImplicitBoolean": "off"
      },
      "security": {
        "noDangerouslySetInnerHtml": "off"
      }
    }
  }
}

优点

  • 很瘠薄快
  • lint的提示很人性化,而且绝大多数都是可以Quick Fix来修复的,好评
    image.png

缺点 、注意事项

  • 目前对于format的配置项比较少,emm,可以说是非常少,适合老实人使用。
  • menorepo 的项目无法支持,也不能说无法支持,它目前是只能读取放在根目录下的配置,这就很尴尬,所以我们要这样写才能兼容, 就非常拉稀。
// 根目录下的rome.json是给vsc的插件读取的
// 各自子项目下的rome.json是给格式化脚本读取的
// 这三个要同步修改,他妈的
packages
|--appA
|--|--rome.json
|--appB
|--|--rome.json
|--rome.json

后语

快用啊!!快用啊!


李大雷
4k 声望389 粉丝

想学唱歌的码农