k01ken’s b10g

He110 W0r1d!

Romeを使ってLintしてみる

開発環境は、Windows 10 Pro(64bit) + node.js v.10.15.0。

Rome(ローマ)は、リントやバンドルやコンパイルやフォーマットやテストなどのすべてを統合したものを作り、もっと手軽に使えることを目的に開発が進められているプロジェクトです。

現在はまだ、JavaScriptとTypeScriptのLinterのみをサポートしている。

早速使ってみましょう。

■Romeを導入する

cd c:\ && mkdir hello-rome && cd hello-rome
yarn add rome

以下のようなエラーが出現。
f:id:k01ken:20210512220713p:plain
Nodeが12.8.1以上じゃないとダメみたいなので、Node.js自体をアップデートしてみたいと思います。ダウンロードページへアクセスしてみると、現時点で最新版は14.17.0。Windows Installer(.msi) の 64-bitを選択。インストーラをダウンロード。インストーラを実行し、バージョンアップ。インストール後に、node -vとしてみると、v14.17.0になっていることを確認。再び、yarn add romeをすると成功。
f:id:k01ken:20210512223251p:plain

npx rome init

を実行すると、以下のコメントが表示される。
f:id:k01ken:20210512223928p:plain

■コードを書いて、Lintしてみる

試しに、TypeScriptのコードを書いて、Lintするので、以下のコードをindex.tsという名前で保存します。

function add(a: number, b: number): number {
	return a + b;
}

function multi(a: number, b: number): number {
  return a * b;
}

console.log(add(1, 1));

次に、

npx rome check index.ts

を実行すると、ちょっと見ずらいですが、関数を書いているのに使っていない、インデントをタブじゃなくて、半角スペース2つ分使っているというエラーが2つ出現します。
f:id:k01ken:20210512230220p:plain
この2つを修正して、以下のようなコードにして、

function add(a: number, b: number): number {
	return a + b;
}

function multi(a: number, b: number): number {
	return a * b;
}

console.log(add(1, 1));
console.log(multi(2, 2));

もう一度、npx rome check index.tsを実行すると、
f:id:k01ken:20210512230656p:plain

■参考リンク

Rome Toolchain
rome / tools