ys memos

Blog

ESLintの設定の手間からの解放


nodejs

2022/05/27


参考となる最終形はこちら

最近,ESLint の設定を,自分でカスタムするようになってきた.

これにより,自分のコーディングルールを自分のプロジェクト内で共通化しつつ,手動フォーマッティングによる開発速度の低下を防いでくれるようになった.

ESLint の設定を自分でカスタムすることでこれらの恩恵を得られる一方,プロジェクト間で同じルールを設定していないのは開発者体験を低下させてしまう.そのため,古いルールが適用されているプロジェクトの開発に着手する際に,最新の.eslintrcを探し出して,それをコピペするといった作業が必要になるようになってしまった.

これは「よしこれを開発しよう!」となったときの出鼻をくじかれる作業となるため,最小の時間でこれを行えるようにしたかった.

そこで調べたところ,ESLint のextendsには,ルールの継承のような役割があり,npm パッケージから設定を引き継げるとのこと.そして,それを準備し,実装した.

同じような事を考えている方は多くいると思うため,ここで知見を記しておく.



以前作成したnpm パッケージ開発用テンプレートからリポジトリを作成する(手順は少し変わってしまいますが,ここはどのような方法でリポジトリを準備しても構いません).


こちら


まずは以下を削除.

  • rollup.config.js
  • index.ts
  • index.test.ts
  • tsconfig.json

.eslintrcを作成し,ここに自分用の設定をコピペする.

この時,依存しているeslint系のパッケージも併せてインストールする.


package.jsonの設定を行う.

箇所説明
name自分のパッケージ名に変更する(scoped-package で@<your-id>/eslint-config という命名がおすすめ)
main"./.eslintrc"にする
module"./.eslintrc"にする
files".eslintrc"にする
repository.url
author
bugs.url
homepage
箇所説明
description
keywords
license

こちら

自分の npm アカウントに移動し,パッケージが公開されている事を確認する.


上で変更したnameの項目に書いた名前でパッケージが公開されているので,そ設定を導入したいプロジェクトで,以下を実行.

npm i -D <your-package>

その後,プロジェクト内の.eslintrcに以下を追記する.

.eslintrc
{
  extends: ["<your-package>"]
}

(再掲)最終形はこちら

npm upをするだけで最新のカスタム設定を適用できるのは,かなり便利ですね!


関連タグを探す