@@ -28,6 +28,8 @@ const publicPath = paths.servedPath;
2828// Some apps do not use client-side routing with pushState.
2929// For these, "homepage" can be set to "." to enable relative asset paths.
3030const shouldUseRelativeAssetPaths = publicPath === './' ;
31+ // Source maps are resource heavy and can cause out of memory issue for large source files.
32+ const shouldUseSourceMap = process . env . GENERATE_SOURCEMAP !== 'false' ;
3133// `publicUrl` is just like `publicPath`, but we will provide it to our app
3234// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.
3335// Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz.
@@ -61,7 +63,7 @@ module.exports = {
6163 bail : true ,
6264 // We generate sourcemaps in production. This is slow but gives good results.
6365 // You can exclude the *.map files from the build during deployment.
64- devtool : 'source-map' ,
66+ devtool : shouldUseSourceMap ? 'source-map' : false ,
6567 // In production, we only want to load the polyfills and the app code.
6668 entry : [ require . resolve ( './polyfills' ) , paths . appIndexJs ] ,
6769 output : {
@@ -189,7 +191,7 @@ module.exports = {
189191 options : {
190192 importLoaders : 1 ,
191193 minimize : true ,
192- sourceMap : true ,
194+ sourceMap : shouldUseSourceMap ,
193195 } ,
194196 } ,
195197 {
@@ -285,7 +287,7 @@ module.exports = {
285287 // https://github.com/facebookincubator/create-react-app/issues/2488
286288 ascii_only : true ,
287289 } ,
288- sourceMap : true ,
290+ sourceMap : shouldUseSourceMap ,
289291 } ) ,
290292 // Note: this won't work without ExtractTextPlugin.extract(..) in `loaders`.
291293 new ExtractTextPlugin ( {
0 commit comments