Open4
TypeScriptのimport order系比較
TS4.9+から使えるlanguage serviceのやつ
"editor.codeActionsOnSave": {
# 未使用importの削除
"source.removeUnusedImports": true,
# import順のソート
"source.sortImports": true,
# 上記2つのショートカット
"source.organizeImports": true,
},
- cliで一括autofix出来ない
- グループごとの空行とかそういうのは出来ない(空行はas-isで残る)
TSビルトイン、Prettier、ESLintの中ではESLintを採用する
TSビルトインのやつを採用できない理由
- グループごとの改行はぶっちゃけ好みだが、その好みを制御出来ないとコードの一貫性を達成できない
- 一括でautofix出来ない(公式から提供されてるのはファイル保存時のフックのみ、api使えば出来るけど)
Prettierを採用できない理由
- ASTを変換しない原則に反するため
- 他のプラグインとの整合性が面倒になりそう
結論
ESLintの方法の中では、ざっくり調べた感じはeslint-plugin-simple-import-sortがちょうどいいと思う
- デフォルトの設定で十分、その場合に導入がシンプル
他に検討したやつ
ESLint組み込みルール
- いい感じに設定するのが面倒
eslint-plugin-import
- いい感じに設定するのが面倒
- ここまでオプションいらない
- 2021/10で更新止まってる
eslint-plugin-perfectionist
- こういう系では新しめで、import以外にも色々ソート出来て、導入が簡単
- ただソートアルゴリズムが独自っぽいため、TSのorganize importとずれがありそう
- まだ若干不安定な感じはする