Как исправить / отключить кажущуюся ошибочной ошибку «В модуле не найдено именованных экспортов»?

#eslint #es6-modules

#eslint #es6-модули

Вопрос:

Я редактирую свой код и получаю это в паре мест:

 /Users/zane/playground/react-waiter/js/components/index.js
  1:15  error  No named exports found in module './utils'    import/export
  2:15  error  No named exports found in module './widgets'  import/export

/Users/zane/playground/react-waiter/js/index.js
  1:15  error  No named exports found in module './components'  import/export
  

Я полагаю, что отчет является ложноположительным, потому что, когда я запускаю код, все работает нормально, и я действительно могу импортировать экспортированные элементы.

Код:

 // js/index.js
export * from './components'
export * from './settings'
export * from './utils'
  
 // js/components/index.js
export * from './utils'
export * from './widgets'
  
 // js/components/utils/index.js
export * from './Waiter'
  
 // js/components/utils/Waiter.jsx
...
const Waiter = (props) => { ... }

export { Waiter }
  

Затем тот же шаблон для widgets модуля, одна константа, экспортируемая из файла и повторно экспортируемая из индекса. Я сделал
попробуйте export const Waiter = ... , и export * from './utils/index' с тем же результатом.

Я часто использую этот шаблон, и проблема возникает при повторном экспорте индексного файла и ничего больше.

В качестве обходного пути я настроил конфигурацию eslint на изменение их на предупреждения, чтобы они не останавливали процесс CI, но сообщения о реальных проблемах по-прежнему поступают.

Я предполагаю, что в какой-то момент (очевидная) ошибка будет исправлена. Это было бы незначительной проблемой, но /* eslint-disable import/export */ , похоже, не имеет никакого эффекта.

Любая информация была бы высоко оценена. Есть ли способ отключить правило для каждой строки и / или «подправить» вещи, чтобы eslint правильно сообщал о вещах?

Комментарии:

1. можете ли вы опубликовать свой package.json? я запустил новое create-react-app и воспроизвел вашу ситуацию без ошибок

2. Он довольно большой, но он есть на github. Компоновка выполняется из catalyst-scripts , а проект с ошибками компоновки — это react-waiter .

Ответ №1:

Чтобы отключить это правило, в вашем .eslintrc.js должно быть:

 module.exports = {
    'rules': {
        'import/export': 0
    }
}
  

Комментарии:

1. В настоящее время для нее установлено значение «предупреждение», чтобы по-прежнему отображались правильные ссылки, но автоматическая проверка не останавливает прогресс в конвейере CI.