Skip to content
← Back to rules

import/first スタイル

An auto-fix is available for this rule.

何を実行するか

インポート以外のステートメント(ディレクティブを除く)がインポートの前にあることを禁止します。

なぜこれは悪いのか?

特に、インポートはホイスティングされるため、インポートされたモジュールはそれらの間に配置された任意のステートメントよりも先に評価されます。
すべてのインポートをファイルのトップにまとめておくことで、この仕様の特性による予期しない動作を防ぐことができます。

このルールに対して誤りなコードの例:

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

参照