When writing a React component, you want to target all environments. It is easy to generate a build that will work on the server and browser with Webpack, and as a bonus you can use loaders (like babel-loader for ES6 code).
When you generate this bundle, you should rely on "react"
as an external so it isn't included in the bundle. In all environments this is desired behavior so you don't duplicate "react"
and break it. This is necessary both because it would make a much larger bundle than necessary, but also because React behaves badly when multiple copies are loaded.
If you do this, you'll end up with a UMD shim like:
(function webpackUniversalModuleDefinition(root, factory) {