División de código y renderización del lado del servidor (REACT no definido)

Descripción

estoy construyendo una aplicación isomórfica/universal REACT con División de código. Aunque compilé con éxito el paquete cliente a través de webback, el servidor no pudo renderizar la página y lanzó un error al ejecutar la función renderToString.
Cuando se ejecuta el servidor, el rastreo de la pila es el siguiente:
ReferenceError: React is not defined
    at /xx/src/server/server.js:84:16
    at /xx/node_modules/react-router/lib/match.js:65:5
    at /xx/node_modules/react-router/lib/createTransitionManager.js:118:11
    at done (/xx/node_modules/react-router/lib/AsyncUtils.js:79:19)
    at /xx/node_modules/react-router/lib/AsyncUtils.js:85:7
    at /xx/src/routes/About/index.js:12:7
    at Function.require.ensure (/xx/src/routes/About/index.js:5:10)
    at Object.getComponent (/xx/src/routes/About/index.js:11:13)
    at getComponentsForRoute (/xx/node_modules/react-router/lib/getComponents.js:62:16)
    at /xx/node_modules/react-router/lib/getComponents.js:74:5
---------------------------------------------
    at Application.callback (/xx/node_modules/koa/lib/application.js:129:47)
    at Application.listen (/xx/node_modules/koa/lib/application.js:64:43)
    at Object.<anonymous> (/xx/src/server/server.js:103:8)
    at Module._compile (module.js:413:34)
    at loader (/xx/node_modules/babel-register/lib/node.js:158:5)
    at Object.require.extensions.(anonymous function) [as .js] (/xx/node_modules/babel-register/lib/node.js:168:7)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
El archivo de servidor server.js contiene:
import Koa from 'koa'
import convert from 'koa-convert'
import webpack from 'webpack'
import webpackMiddleware from 'webpack-dev-middleware'
import config from '../../webpack.config'

import ReactDOM from 'react-dom/server';
import { Provider } from 'react-redux'
import { createMemoryHistory, RouterContext, match } from 'react-router';
import { IntlProvider } from 'react-intl'
import { trigger } from 'redial'

import localeMessages from '../locales/en'
import configureStore from '../store/configureStore'


function createPage(html, scriptTag) {
  return `
    <!doctype html>
    <html>
      <body>
        ${html}

        ${scriptTag}
      </body>
    </html>
  `
}

const is_developing = process.env.NODE_ENV == 'development'
const port = process.env.PORT || 5000
const server = new Koa()

server.use((req, res) => {
  const store = configureStore()
  const history = createMemoryHistory(req.path)
  const routes = require('../routes')
  const { dispatch, getState } = store

  match({ routes, history }, (error, redirectLocation, renderProps) => {
    // Get array of route handler components:
    const { components } = renderProps;

    // Define locals to be provided to all lifecycle hooks:
    const locals = {
      path: renderProps.location.pathname,
      query: renderProps.location.query,
      params: renderProps.params,

      // Allow lifecycle hooks to dispatch Redux actions:
      dispatch
    };

    const content = ReactDOM.renderToString(
      <Provider store={store}>
        <IntlProvider locale="en"
                      feedbacks={localeMessages}>
          <RouterContext {...renderProps} />
        </IntlProvider>
      </Provider>
    );

    // Wait for async data fetching to complete, then render:
    trigger('fetch', components, locals)
      .then(() => {
        const state = getState();
        const content = ReactDOM.renderToString(
          <Provider store={store}>
            <IntlProvider locale="en"
                          feedbacks={localeMessages}>
            <RouterContext {...renderProps} />
            </IntlProvider>
          </Provider>
        );
        const html = createPage(content, scriptTag)
        resolve({ html, state })
      })
      .catch(e => console.log(e))
  })
})

server.listen(port, '0.0.0.0', () => {
  console.info(`Listening on port ${port} (0.0.0.0)`)
})

server.on('error', (err, ctx) => {
  console.log('error', err, ctx)
})

module.exports = server
Toda la rutina parece funcionar bien: el Estado derivado de getState() se ve bien, y diferentes rutas coinciden con las expectativas en el bucle (no importa lo que escriba en el navegador, enlace a la ruta correcta).
Sigo la ruta asíncrona del router REACT (como se describe en example). En esta pregunta concreta, el contenido de routes/About/index.js es el siguiente:
// Polyfill (require for server side)
if (typeof require.ensure !== 'function') require.ensure = (d, c) => c(require)

module.exports = {
  path: 'about',
  getComponent(nextState, cb) {
    require.ensure([], (require) => {
      cb(null, require('./components/About').default)
    })
  }
}
También revisé los diferentes componentes para asegurarme de que todos fueran importados a la Biblioteca REACT (es decir, import React from 'react'). Una vez más, cuando ejecuto webback para compilar toda la aplicación, no hay problema.

Solución de referencia

también debe importar REACT en el archivo server.js porque después de transferir lo siguiente
const content = ReactDOM.renderToString(
  <Provider store={store}>
    <IntlProvider locale="en"
                  feedbacks={localeMessages}>
      <RouterContext {...renderProps} />
    </IntlProvider>
  </Provider>
);
Se ve así.
var content = ReactDOM.renderToString(React.createElement(
  Provider,
  { store: store },
  React.createElement(
    IntlProvider,
    { locale: "en",
      feedbacks: localeMessages },
    React.createElement(RouterContext, renderProps)
  )
));