circular-dependency-plugin
Было ли у вас такое, что при develop-сборке все отлично работает, а при production-сборке приложение падает с несколько пугающей ошибкой?
TypeError: Super expression must either be null or a function, not undefined
Уверен, что было, причем часто проблема возникает из ниоткуда, что очень неприятно, так еще и при исследовании всплывает, что файлики-то все на месте, импорты-экспорты тоже правильные, в чем же дело? А дело в циклических зависимостях.
О том, в чем вообще проблема и какие есть способы ее решить, можно почитать в посте «How to fix nasty circular dependency issues once and for all in JavaScript & TypeScript», откуда я и взял картинку ниже.
Я же просто хочу сказать, что это самая противная проблема, которая возникает обычно очень неожиданно и очень портит жизнь, потому надо бы пресекать или хотя бы отслеживать циклические зависимости, если у вас webpack, то делается это легко, времени много не займет, а профитов даст кучу.
Резво ставьте circular-dependency-plugin и подключайте его в конфиг, и будет вам счастье.
// webpack.config.js
const CircularDependencyPlugin = require('circular-dependency-plugin')
module.exports = {
plugins: [
new CircularDependencyPlugin({
exclude: /node_modules/,
cwd: process.cwd()
})
]
}