How to disable source maps for React JS Application
node.jsReactjsSource Mapsnode.js Problem Overview
My react folder structure is as below
I've not used the create-react-app version. I tried using GENERATE_SOURCEMAP=false
. But It didn't work.
Where can I find the .map files. How can I delete those files?
I cannot find a build folder. I've tried using the below script But It cannot work in removing source maps
"scripts": {
"start": "react-scripts start",
"build": "GENERATE_SOURCEMAP=false && npm run build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
node.js Solutions
Solution 1 - node.js
just remove &&
"scripts": {
"start": "react-scripts start",
"build": "GENERATE_SOURCEMAP=false react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
Solution 2 - node.js
You have to create a .env
file in your root directory (same folder as package.json
) and set GENERATE_SOURCEMAP=false
on a single line.
for additional configurations, you may refer to the documentation here: https://facebook.github.io/create-react-app/docs/advanced-configuration
Solution 3 - node.js
What I have tested and which is working is to add this code in your .env.production
file or .env
file
GENERATE_SOURCEMAP=false
Solution 4 - node.js
Solution 1
Edit your package.json
like below:
- Windows:
"scripts": {
"start": "react-scripts start",
"build": "set \"GENERATE_SOURCEMAP=false\" && react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
- Linux:
"scripts": {
"start": "react-scripts start",
"build": "GENERATE_SOURCEMAP=false react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
Solution 2 (Recommended)
This solution is not operating system dependent and works on both Linux and Windows. Just create a file called .env
in the root path of your project and add the following line to it:
GENERATE_SOURCEMAP=false
Solution 5 - node.js
For windows cmd and create-react-app + react-scripts,
You should use set and close with " YOUR_TMP_ENV_VAR "
See example:
"deploy:prod:hosting": "set \"GENERATE_SOURCEMAP=false\" && npm run build
this answer helped me: https://stackoverflow.com/questions/52888214/how-to-set-environment-variable-in-react-js
Solution 6 - node.js
This works for me. Hope it helps anyone.
// package.json
"build": "react-scripts build",
"postbuild": "rimraf build/**/*.map"
This way, it will auto delete map files during build generation.
Solution 7 - node.js
Solution for ejected create-react-app v2.1.3.
Go to /config/webpack.config.js directory and change the following line:
const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
To:
const shouldUseSourceMap = false;
And Bob is your uncle.
Solution 8 - node.js
Put this one in your package.json
"build": "cross-env GENERATE_SOURCEMAP=false react-scripts build",
It works on Windows and Linux...
Solution 9 - node.js
just add GENERATE_SOURCEMAP=false
in .env
Solution 10 - node.js
After long struggle nothing worked. Finally what worked for me is changing sourcemap: false in webpack.config.prod.js inside nodemodules/react-script/config hopefully it will work for you too.