Этот пост посвящен тому, как я столкнулся с возможной проблемой при попытке обновить версию узла приложения 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;
  }
}

Это сделает переменную процесса доступной во внешнем интерфейсе.