From 92d9cda964b920b494774694cc9cef2f216e3cb4 Mon Sep 17 00:00:00 2001
From: Thien Do <dvkndn@gmail.com>
Date: Sat, 1 Oct 2016 00:06:26 +0700
Subject: [PATCH] Define process.env as object (#807)

* Define process.env as object

* Fix define process.env

* fix NODE_ENV check

* Fix style nitpick
---
 packages/react-scripts/config/env.js                 | 9 +++++----
 packages/react-scripts/config/webpack.config.prod.js | 2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/packages/react-scripts/config/env.js b/packages/react-scripts/config/env.js
index 2bdc65afa..66ba341b3 100644
--- a/packages/react-scripts/config/env.js
+++ b/packages/react-scripts/config/env.js
@@ -15,24 +15,25 @@
 var REACT_APP = /^REACT_APP_/i;
 
 function getClientEnvironment(publicUrl) {
-  return Object
+  var processEnv = Object
     .keys(process.env)
     .filter(key => REACT_APP.test(key))
     .reduce((env, key) => {
-      env['process.env.' + key] = JSON.stringify(process.env[key]);
+      env[key] = JSON.stringify(process.env[key]);
       return env;
     }, {
       // Useful for determining whether we’re running in production mode.
       // Most importantly, it switches React into the correct mode.
-      'process.env.NODE_ENV': JSON.stringify(
+      'NODE_ENV': JSON.stringify(
         process.env.NODE_ENV || 'development'
       ),
       // Useful for resolving the correct path to static assets in `public`.
       // For example, <img src={process.env.PUBLIC_URL + '/img/logo.png'} />.
       // This should only be used as an escape hatch. Normally you would put
       // images into the `src` and `import` them in code to get their paths.
-      'process.env.PUBLIC_URL': JSON.stringify(publicUrl)
+      'PUBLIC_URL': JSON.stringify(publicUrl)
     });
+  return {'process.env': processEnv};
 }
 
 module.exports = getClientEnvironment;
diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js
index 4c43cdf51..2fb303571 100644
--- a/packages/react-scripts/config/webpack.config.prod.js
+++ b/packages/react-scripts/config/webpack.config.prod.js
@@ -49,7 +49,7 @@ var env = getClientEnvironment(publicUrl);
 
 // Assert this just to be safe.
 // Development builds of React are slow and not intended for production.
-if (env['process.env.NODE_ENV'] !== '"production"') {
+if (env['process.env'].NODE_ENV !== '"production"') {
   throw new Error('Production builds must have NODE_ENV=production.');
 }
 
-- 
GitLab