Skip to content
← Back to rules

nextjs/no-assign-module-variable 正しさ

何を行うか

Next.js アプリケーション内で module という名前の変数の代入または宣言を禁止します。

なぜ問題か

変数名 module は、Next.js の内部用途およびモジュールシステム機能のために予約されています。独自に module 変数を宣言すると、Next.js 内部のモジュールシステムと競合し、アプリケーションで予期しない動作を引き起こす可能性があり、コード分割やホットモジュールリプレース(HMR)に問題が生じる恐れがあります。

このルールに違反する誤ったコードの例:

javascript
// module 変数の宣言
let module = {};

// module を変数宣言で使用
const module = {
  exports: {},
};

// module への代入
module = { id: "my-module" };

このルールに準拠する正しいコードの例:

javascript
// 別の変数名を使用
let myModule = {};

// より説明的な名前を使用
const customModule = {
  exports: {},
};

// 実際のモジュールオブジェクトにアクセス(利用可能な場合)
console.log(module.exports);

使い方

このルールを設定ファイルまたは CLI で有効化するには、以下の方法が利用可能です:

json
{
  "plugins": ["nextjs"],
  "rules": {
    "nextjs/no-assign-module-variable": "error"
  }
}
bash
oxlint --deny nextjs/no-assign-module-variable --nextjs-plugin

参照