У меня есть проект React-Webpack средней сложности, в котором используется типичная цепочка TypeScript / Webpack-dev-server, Jest и связанных с ними инструментов. Настройка очень похожа на create-react-app
, но со временем она немного отклоняется: https://github.com/facebook/create-react-app/
Если существует ошибка компиляции или ошибка ESLint в веб-сервисе TypeScript файлы, затем Webpack отклоняет как сборку, так и перезагрузку в реальном времени. Это ожидаемое поведение.
Однако, если есть один или несколько некомпилируемых тестов, то Webpack игнорирует тесты и продолжает обслуживать веб-код! Это очень проблематично c, потому что это приводит к ситуации, когда сломанные тесты снова и снова отправляются на наш Git -репортаж.
Что я хочу сделать: Как я могу вызвать сбой как сборок, так и оперативной перезагрузки, если существует тест с ошибками компиляции или ошибками ESLint?
Обратите внимание, что все эти тесты выполняются в Node.js через инфраструктуру выполнения теста Jest, тогда как фактическая приложение запускается в браузере.
Предварительное расследование:
Похоже, что WebPack игнорирует все тесты из-за следующей конфигурации reportFiles
для ForkTsCheckerWebpackPlugin
:
reportFiles: [
'**',
'!**/__tests__/**',
'!**/?(*.)(spec|test).*',
'!**/src/setupProxy.*',
'!**/src/setupTests.*',
],
Если я удаляю '!**/__tests__/**'
и '!**/?(*.)(spec|test).*'
, то получаю нужные сбои сборки (но не сбои перезагрузки в реальном времени). Однако это может привести к новым проблемам.