LoginSignup
12
7

More than 1 year has passed since last update.

Prettier と plugin だけで Node.js のモジュール import の並び順を整える

Last updated at Posted at 2022-06-04

はじめに

  • Prettier を導入しているが、ESLint が導入されていない JavaScript/TypeScript の小さなプロジェクトで import の並び順を揃えたいニーズがあったため、追加したライブラリと設定を記載します
  • ESLint を導入することで解消も可能でしたが、 ESLint を入れる程大きなプロジェクトではないため見送りました

実行環境

% sw_vers
ProductName:    macOS
ProductVersion: 12.4
BuildVersion:   21F79
% node -v
v16.7.0
% yarn -v
1.22.15

import の並び順を整える

今回追加するのは trivago が開発している prettier-plugin-sort-imports です

ライブラリの追加

該当のプロジェクトでは yarn を利用していたため以下コマンドで追加を行いました
npm を利用している場合読み替えていただけると

yarn add --dev @trivago/prettier-plugin-sort-imports

設定の追加

ライブラリを追加するだけでデフォルトの設定が有効になります
設定を変更する場合は Prettier の設定ファイルにルールを記載していきます

プロジェクトによって設定ファイル名や形式が異なる場合もあります
必要に応じて公式ドキュメントを参照してください

ちなみに私が設定したルールは以下 2 つです
※ 今回追加した設定のみ記載しています

.prettierrc.json
{
  "importOrder": ["^@foo/(.*)$", "^[./]"],
  "importOrderSeparation": true
}

他にもルールは存在しますが追加した 2 ルールだけ説明を追加します

ルール名 ルール説明
importOrder 左から順に import 順を並び替えます
importOrderSeparation importOrder を 1 つのグループとし その前後に改行を追加します

Prettier を実行する

以下のようなコマンドを実行し、整形を行います

yarn prettier --write .

コマンドの実行結果
Before, After 例を載せておきます

before.ts
import hoge from "./"
import foo from "@foo/baz"
import foo from "@foo/bar"
after.ts
import foo from "@foo/bar"
import foo from "@foo/baz"

import hoge from "./"

Reference

12
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
7