react/jsx-filename-extension 制限
何を行うか
.jsx ファイル拡張子の使用を一貫性を持って強制します。
なぜ悪いのか
一部のバンドラーやパーサーは、ファイルが JSX を含んでいることをファイル拡張子から認識する必要があり、適切にファイルを処理できるようにしています。
例
このルールに対して誤りなコードの例:
jsx
// ファイル名: MyComponent.js
function MyComponent() {
return <div />;
}このルールに対して正しいコードの例:
jsx
// ファイル名: MyComponent.jsx
function MyComponent() {
return <div />;
}設定
このルールは、次のプロパティを持つ設定オブジェクトを受け入れます。
allow
型: "always" | "as-needed"
デフォルト: "always"
JSX ファイル拡張子を許可するタイミング。デフォルトでは、すべてのファイルが JSX 拡張子を付けることが可能になっています。as-needed に設定すると、実際に JSX 構文を含むファイルのみに .jsx 拡張子の使用を許可します。
extensions
型: string[]
デフォルト: ["jsx"]
許可されるファイル拡張子のセット。先頭のドット(例: "jsx" または ".jsx")を含むか含まないかはどちらも有効です。
ignoreFilesWithoutCode
型: boolean
デフォルト: false
有効にすると、コードを含まないファイル(つまり空、空白文字やコメントのみのファイル)は拒否されません。
使用方法
このルールを構成ファイルまたは CLI で有効化するには、次のように使用できます:
json
{
"plugins": ["react"],
"rules": {
"react/jsx-filename-extension": "error"
}
}bash
oxlint --deny react/jsx-filename-extension --react-plugin