Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 4c94038

Browse files
Merge pull request #184 from topcoder-platform/earn-restructure
add local-setup for earn-app
2 parents 72b1051 + 8f92399 commit 4c94038

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

README.md

+28-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ This is a [single-spa](https://single-spa.js.org/) example React microapp.
1818
| `npm start` | Run server which serves production ready build from `dist` folder |
1919
| `npm run dev` | Run app in the `development` mode and `dev` config |
2020
| `npm run dev-https` | Run app in the `development` mode and `dev` config using HTTPS protocol |
21-
| `npm run local` | Run app in the `development` mode and `local-dev` config |
2221
| `npm run prod` | Run app in the `development` mode and `prod` config |
23-
| `npm run build` | Build app for production and puts files to the `dist` folder, default to `development` mode and `local-dev` config |
22+
| `npm run build` | Build app for production and puts files to the `dist` folder, default to `development` mode and `dev` config |
2423
| `npm run analyze` | Analyze dependencies sizes and opens report in the browser |
2524
| `npm run lint` | Check code for lint errors |
2625
| `npm run format` | Format code using prettier |
@@ -33,9 +32,35 @@ This is a [single-spa](https://single-spa.js.org/) example React microapp.
3332
Inside the project folder run:
3433
- `nvm use 10.22.1;` - to use npm version: 10.22.1
3534
- `npm i` - install dependencies
36-
- `npm run local` - run app in `development` mode and `local-dev` config
35+
- `npm run dev` - run app in `development` mode and `dev` config, currently it is using the config from `default.js`
3736
- As this app can be loaded only inside a frame single-spa, you have to run a `micro-frontends-frame` frame app and configure it to use the URL `http://localhost:8008/earn-app/topcoder-micro-frontends-earn-app.js`.
3837

38+
## Local Setup for adding a new MFE
39+
1. The setup is assuming you have setup the `micro-frontends-frame` and `micro-frontends-nav-app`. And this is also assuming your have a new MFE named `another-app` and your local url is `http://localhost:8099/another-app/topcoder-micro-frontends-another-app.js`
40+
41+
2. You have launched existing `micro-frontends-challenges-app` and `micro-frontends-gigs-app` in your local envrionment.
42+
43+
3. Modify the `config/dev.js` by incorporating the module mapping, so it might be look like this if you setup all them in local environment:
44+
45+
```
46+
module.exports = {
47+
MFE_CONFIG: {
48+
'@topcoder/micro-frontends-another-app': 'http://localhost:8099/another-app/topcoder-micro-frontends-another-app.js',
49+
'@topcoder/micro-frontends-challenges-app': 'http://localhost:8009/challenges-app/topcoder-micro-frontends-challenges-app.js',
50+
'@topcoder/micro-frontends-gigs-app': 'http://localhost:8010/gigs-app/topcoder-micro-frontends-gigs-app.js',
51+
}
52+
};
53+
```
54+
4. In the `src/containers/Menu/index.jsx`, you can modify it to add your new `another-app` menu link, challenges-app and gigs-app menu links have already been setup as reference.
55+
56+
5. In the `set-public-path.js` file, add the mapping to your `another-app`, challenges-app and gigs-app have already been setup as the reference.
57+
58+
6. In the `App.jsx` file, add the application mount point inside the <Router> component, challenges-app and gigs-app have already been setup as the reference
59+
60+
7. Edit your `hosts` file by mapping `127.0.0.1 local.topcoder-dev.com`
61+
62+
8. Now visit `http://local.topcoder-dev.com:8080/earn/find/challenges` to view the `micro-frontends-challenges-app`
63+
3964
## Deployment to Production
4065

4166
- `npm i` - install dependencies

config/local-dev.js

-6
This file was deleted.

package.json

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"start": "node server.js",
55
"dev": "cross-env APPENV=dev webpack-dev-server",
66
"dev-https": "cross-env APPENV=dev webpack-dev-server --https",
7-
"local": "cross-env APPMODE=local-dev webpack-dev-server --mode=development",
87
"build": "cross-env APPENV=${APPENV:-dev} APPMODE=${APPMODE:-development} webpack --mode=${APPMODE:-development}",
98
"analyze": "cross-env APPMODE=production webpack --mode=production --env.analyze=true",
109
"lint": "eslint src --ext js,jsx --fix",

0 commit comments

Comments
 (0)