副作用を伴うインポート (Side-Effect Imports)
ID: side_effect_import | 重要度: Low (default)
副作用(例:import './globals';)のみを目的として実行されるインポートを特定します。これらは多くの場合、グローバルな状態やプロトタイプを変更します。
なぜこれが「不吉な臭い」なのか
副作用を伴うインポートは依存関係グラフを不明瞭にし、インポート順序によって非決定的な動作を引き起こす可能性があります。これらは多くの場合、追跡が困難な「隠れた」依存関係となります。
除外パターン
archlint は、以下の副作用を伴うインポートを自動的に無視します:
- CSS/アセット:
import './styles.css',import './image.png'など。 - 動적インポート: 関数内の
import('./module')またはrequire('./module')(遅延読み込みや条件付きインポートによく使用されます)。
修正方法
初期化を明示的に行うようにしてください。副作用を伴うインポートに頼るのではなく、init() 関数をエクスポートし、それを明示的に呼び出します。