How do I change `src` folder to something else in create-react-app
You can use react-app-rewired to override react paths configuration. In my case, I can change the paths in config-overrides.js file
const path = require('path');module.exports = { paths: function (paths, env) { paths.appIndexJs = path.resolve(__dirname, 'mysrc/client.js'); paths.appSrc = path.resolve(__dirname, 'mysrc'); return paths; },}
I know this is an old question but I'm still gonna post my solution since it might help someone.
I got it working by doing the following:
- Run
npm run eject
. This exposes some internal configuration stuff from create-react-app - Open your
package.json
and edit the respective regexes underjest.collectCoverageFrom
andjest.testMatch
to match your test path - Alter the paths for
appSrc
,appIndexJs
andtestsSetup
in theconfig/paths.js
file
Not sure if this answers your question but I'll give it a shot. My directory structure looks like this:
/root--/app----/build----/public------index.html----/src------index.jsapp.jspackage.js
My /root/package.json has this in it:
"scripts": { "build": "cd app && npm run build", "start": "node app.js", "serve": "cd app && npm run start" }, "dependencies": { "express": "^4.8.0", "react": "^16.2.0", "react-dom": "^16.2.0", "react-router": "^4.2.0", "react-router-dom": "^4.2.2", "react-scripts": "^1.0.17" },
and my /root/app/package.json looks like this:
"scripts": { "build": "react-scripts build", "start": "set PORT=3000 && react-scripts start" }, "dependencies": { "react-scripts": "^1.0.17" }
To run the development version of Reactjs, in the /root I can just npm run serve to serve up the dev version.
I am using node and express, so to run the production version of Reactjs, in the /root I can just npm run build to create the /root/app/build directory. I have a router that looks like this:
var options = {root : config.siteRoot + '/app/build'};mainRte.all('/', function(req, res) { console.log('In mainRte.all Root'); res.sendFile('index.html', options);});
so when I run /root/app.js in node and surf to "/" it opens up /root/app/public/index.html and then /root/app/index.js.
Hopefully that helps.