Перейти к содержанию

config

Проверяет параметры конфигурации компилятора.

Подробности правила

Компилятор React принимает разные параметры конфигурации, которые управляют его поведением. Это правило проверяет, что в конфигурации верные имена параметров и типы значений, чтобы опечатки и неверные настройки не приводили к тихим сбоям.

Неверно

Примеры неверного кода для этого правила:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// ❌ Unknown option name
module.exports = {
  plugins: [
    ['babel-plugin-react-compiler', {
      compileMode: 'all' // Typo: should be compilationMode
    }]
  ]
};

// ❌ Invalid option value
module.exports = {
  plugins: [
    ['babel-plugin-react-compiler', {
      compilationMode: 'everything' // Invalid: use 'all' or 'infer'
    }]
  ]
};

Верно

Примеры верного кода для этого правила:

1
2
3
4
5
6
7
8
9
// ✅ Valid compiler configuration
module.exports = {
  plugins: [
    ['babel-plugin-react-compiler', {
      compilationMode: 'infer',
      panicThreshold: 'critical_errors'
    }]
  ]
};

Устранение неполадок

Конфигурация работает не так, как ожидалось

В конфигурации компилятора могут быть опечатки или неверные значения:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// ❌ Wrong: Common configuration mistakes
module.exports = {
  plugins: [
    ['babel-plugin-react-compiler', {
      // Typo in option name
      compilationMod: 'all',
      // Wrong value type
      panicThreshold: true,
      // Unknown option
      optimizationLevel: 'max'
    }]
  ]
};

Допустимые параметры смотрите в документации по конфигурации:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// ✅ Better: Valid configuration
module.exports = {
  plugins: [
    ['babel-plugin-react-compiler', {
      compilationMode: 'all', // or 'infer'
      panicThreshold: 'none', // or 'critical_errors', 'all_errors'
      // Only use documented options
    }]
  ]
};

Источник — https://react.dev/reference/eslint-plugin-react-hooks/lints/config

Комментарии