Я разрабатываю собственную библиотеку компонентов в React (16.4) и Webpack 4. Конфигурация извлекается и импортируется в другой проект с помощью git + ssh: //[email protected] .... на package.json.
Только один компонент не работает, когда я использовал эту библиотеку в другом проекте, это разработка ввода select с помощью response-select (Джед Ватсон), и она вылетает при нажатии.
Все приложение вылетает, и у меня такая ошибка:
Uncaught Error: Minified React error #188; visit https://reactjs.org/docs/error-decoder.html?invariant=188 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
Сообщение по указанной выше ссылке:
Unable to find node on an unmounted component.
Теперь моя проблема связана с конфигурацией моего веб-пакета, но я не нахожу решений, чтобы исправить это.
Последняя надежда с сообществом ...



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У меня была аналогичная ситуация - я разрабатываю библиотеку нестандартных компонентов и импортирую ее во внешний проект. У меня были проблемы с react-bootstrap, react-transition-group и другими внешними библиотеками, которые динамически монтируют / размонтируют элементы DOM в продакшене; минимизированная ошибка реакции № 188 приведет к сбою производственных сборок. Вот как я решил это в конфигурации нашего веб-пакета в разделе module.exports (как dev, так и prod):
alias: {
// Support React Native Web
// https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
"react-native": "react-native-web",
react: path.resolve("./node_modules/react"),
"react-dom": path.resolve("./node_modules/react-dom"),
"react-transition-group": path.resolve(
"./node_modules/react-transition-group"
)
}
Это должно переопределить любые другие экземпляры этих конкретных библиотек во всех зависимостях; каждый раз, когда они импортируются / используются, они вынуждены использовать версию, указанную в моем проекте в package.json. Имейте в виду, что я использую Webpack 3, поэтому исправление для Webpack 4 может быть другим.
Спасибо, Аби.
Я просто решил это другим способом. Я добавляю всю библиотеку в "externals" в конфигурацию моего веб-пакета следующим образом:
externals: [
'react-select': {
root: 'ReactSelect',
commonjs2: 'react-select',
commonjs: 'react-select',
amd: 'react-select',
},
]