Skip to content

Commit

Permalink
Define process.env as object (facebook#807)
Browse files Browse the repository at this point in the history
* Define process.env as object

* Fix define process.env

* fix NODE_ENV check

* Fix style nitpick
  • Loading branch information
Thien Do authored and feiqitian committed Oct 25, 2016
1 parent 5c3696e commit 3c4a571
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
9 changes: 5 additions & 4 deletions packages/react-scripts/config/env.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
2 changes: 1 addition & 1 deletion packages/react-scripts/config/webpack.config.prod.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.');
}

Expand Down

0 comments on commit 3c4a571

Please sign in to comment.