cannot remove the source maps from react project - reactjs

I want to disable the source maps so that my code will not appear in the deployment link source. As you will see on the screenshot I changed the build and I created .env file but still it does not work and the code is still visible. Also the .env file won't be committed and it says Untracked Files.

Try removing map files after a build.
"scripts": {
...
"build": "react-scripts build",
"postbuild": "rimraf build/**/*.map"
...
}

I replace the current "build" with "build": "react-scripts build && rm build/static/js/*.map && rm build/static/css/*.map" and it works. I twill remove the js and css from the sources.

Related

How to rename 'index.js' file in React File structure to something else?

In the React file structure under components there is index.js file that runs the main character when running the project. Is there anyway to rename this file to any name I want? I am using PM2 server manager and there is no way for me to keep track which server is which when running multiple index.js files. So the only option I got is to rename this index.js to something specific to each project.
I have tried changing the package.json file's start script as below but nothing worked out only gave errors.
"scripts": {
"start": "test.js react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}
Appreciate all your help!
You can't change the name of the file used by create-react-path.
You'll have to either eject to use custom webpack config by running
npm run eject
But it's a one-way operation (see documentation)
Or you can use Vite instead of create-react-app to bundle your project.
Vite is more configurable than create-react-app, you define in the index.html the name of your js file. So you can put any name you want.
Maybe even this example could help you:
https://vitejs.dev/guide/ssr.html#example-projects

React-create-app index.js file doesn't reload automatically

I'm using React version 17.0.1 on windows and I've noticed that the create-react-app hot reload doesn't work. I found some tips online (Development server of create-react-app does not auto refresh for example ) and tried every one of them (my path doesn't include parentheses, it isn't synced to google drive or dropbox, I've tried the watcher refresh and reinstalling the node modules). Nothing worked until I realized that the problem occurs only with the index.js file. If I save any other file (html or components) the browser does reload automatically. I've read that this might be a bug with the newer version of React that was released just days before I started studying this subject.
One thing I should mention is that my npm start script (that was automatically generated) is different than the ones I saw on the other threads (Auto reload react server on update for example), It doesn't says "Webpack" at all and I thought it maybe have something to do with my problem.
From the package.json file:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
Is there any way around this bug? Is this problem familiar?

Using React and redux to build a browser extension

I'm building a fairly complex browser extension for a client and it occurred to me that I could leverage Redux in the backend scripts to simplify the overall information flow, as well as using React in the UI, and modern javascript in the content scripts I need.
I've got a basic extension working, by building the background and content scripts in separate build steps. My src folder looks like:
src/
background/
index.js (and other js files)
content/
index.js (and other js files)
toolbar/ (shows intro text and a button to display prefs - see webpage below)
toolbar.html
App.js
App.css
components/ (etc)
webpage/ (displays the UI elements for use prefs etc)
webpage.html
App.js
App.css
components/ (etc)
common/
index.js (etc - common logic used by both toolbar, webpage, content and background.)
Right now I am building each subfolder independently via scripts in package.json
"scripts": {
"prebuild": "rimraf build",
"build": "yarn build:app && yarn build:bg && && yarn build:cont",
"build:app": "INLINE_RUNTIME_CHUNK=false react-scripts build",
"build:bg": "webpack --mode production ./src/background --output ./build/background.js",
"build:cont": "webpack --mode production ./src/content --output ./build/content.js",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
but the build:app step by default seems to also build everything that's in src/ so the background, content etc stuff gets duplicated and the html in the subfolders is unused.
Is there a way to tell create-react-app's webpack config to build these all to suit the needs of my extension without ejecting?

How to prevent npm run build from deleting directories in build

I have a SPA react app to host my personal projects. The layout is created with react, but each personal project is a directory with normal index.html, .js, and .css files.
I couldn't figure out how to successfully use <Link> to render the regular .html pages on click, so I'm taking the easy route for now: manually moving each directory into build, then linking to it with .
This works, but every time I rerun npm run build it erases all of my project directories. How can I prevent this behavior? (I'm using create-react-app with defaults).
tl;dr: How to tell npm run build not to delete certain directories inside build.
Build folder should be cleaned up on each build. This is best practice so your project can be build by different developers, having only source code.
To achive your task you should use additional npm script which will be automatically run after build. (You may see all possible stages when scripts can be run here)
postbuild script should copy additional files from some path under src folder to build folder. So on each build you'll have all required files in place
Example
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"postbuild": "copy .\\src\\app.js .\\build\\app.js"
},
Last line will copy app.js from src folder to build folder. The same way you can create script to recreate all required directories after each build.

How to deploy React app (create-react-app) to Back4App?

I've created an React app with create-react-app and I want to deploy it to Back4App.
The problem is I want to deploy the build folder and not the public folder (which I understand is the default for Back4App / ParsePlatform).
So far, I haven't found any way to config deploy to use anything other than the public folder.
Any solution / workaround to this?
If you are using B4A CLI, one of the easiest ways to deploy a create-react-app is, firstly, changing the build script into your package.json as below snippet:
...
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build && cp -r build/* {{PATH-TO-YOUR-B4A-APP}}/public",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
...
As you can see, you just need to move all content inside create-react-app build folder to the public folder of your cloud code. After that, move to your app path and run b4a deploy.
Also, you could add a step to clear all public folder content before move the new stuff, but be careful with this step.
Otherwise, you could access the Back4app Parse-Dashboard into the Cloud Code Functions and deploy all the build stuff in public folder using the browser interface.
This is a live demo of a create-react-app deployed in Back4App.

Resources