Skip to content

UMD build doesn't work via import in the browser (TypeError: Cannot set property 'React' of undefined) #14635

Closed
@vp2177

Description

@vp2177

When importing the UMD build (both production and development) in the browser – that is, from a <script type="module"> – an error is thrown: TypeError: Cannot set property 'React' of undefined.

The relevant code:

12: (function (global, factory) {
13:	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
14:	typeof define === 'function' && define.amd ? define(factory) :
15:	(global.React = factory());
16: }(this, (function () { 'use strict';

Throws on line 15 as globalthis is undefined in a module context.
Is this as simple to fix as passing this || self on line 16, or is there a catch?

Do you want to request a feature or report a bug?
bug

What is the current behavior?
TypeError: Cannot set property 'React' of undefined

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
https://jsfiddle.net/dja3wfc7/ (Updated)

What is the expected behavior?
I would expect the import to work, as the same file works if included via <script src=...>.

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?
React 16.7.0 (latest stable) – I have found another UMD related bug, #3037, which pertains to React 0.12.2. I have tried that version and indeed it works, it can be imported.
Chrome 71, Safari 12 tested (probably all browsers)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions