import/first スタイル
何を実行するか
インポート以外のステートメント(ディレクティブを除く)がインポートの前にあることを禁止します。
なぜこれは悪いのか?
特に、インポートはホイスティングされるため、インポートされたモジュールはそれらの間に配置された任意のステートメントよりも先に評価されます。
すべてのインポートをファイルのトップにまとめておくことで、この仕様の特性による予期しない動作を防ぐことができます。
例
このルールに対して誤りなコードの例:
js
import { x } from "./foo";
export { x };
import { y } from "./bar";このルールに対して正しいコードの例:
js
import { x } from "./foo";
import { y } from "./bar";
export { x, y };設定
このルールは以下の文字列値のいずれかを受け入れます。
"absolute-first"
絶対パスのインポートを相対パスのインポートより前に記述することを強制します。
"absolute-first" を使用した場合の誤りなコードの例:
js
import { x } from "./foo";
import { y } from "bar";"absolute-first" を使用した場合の正しいコードの例:
js
import { y } from "bar";
import { x } from "./foo";"disable-absolute-first"
"absolute-first" の振る舞いを無効化します。
これがデフォルトの振る舞いです。
使用方法
設定ファイルまたは CLI でこのルールを有効化するには、以下のように使用できます:
json
{
"plugins": ["import"],
"rules": {
"import/first": "error"
}
}bash
oxlint --deny import/first --import-plugin