Этот пост посвящен тому, как я столкнулся с возможной проблемой при попытке обновить версию узла приложения React. Итак, немного контекста.
Наше приложение для реагирования использует модуль под названием react-app-rewired, который позволяет нам настраивать веб-пакет create-react-app без необходимости извлекать. Это приложение было создано до создания приложения create-реагировать V2. В рамках обслуживания/улучшений мы решили обновить версию узла, используемую приложением, и возникла дикая ошибка.
Uncaught ReferenceError: process is not defined at ./node_modules/lie/lib/states.js
После обновления нескольких пакетов мы столкнулись с проблемой, когда какой-то модуль использовал объект process во внешнем интерфейсе, который в то время был недоступен. Это в основном значение ошибки, показанной выше.
Проблема здесь в том, что с помощью этого пакета мы не можем разместить обычную конфигурацию в обычном для веб-пакета месте (webpack.config.js). Вместо этого нам нужно использовать файл, из которого считывается модуль rewire — config-overrides.js.
const webpack = require('webpack'); module.exports = { // The Webpack config to use when compiling your react app for development or production. webpack: function(config, env) { config.plugins = [...config.plugins, new webpack.ProvidePlugin({process: 'process/browser'})] return config; } }
Это сделает переменную процесса доступной во внешнем интерфейсе.