78 lines
1.9 KiB
Markdown
78 lines
1.9 KiB
Markdown
# Create React SSR
|
|
|
|
This project aims to have a starter kit for creating a new React app with Server Side Rendering with a backend in go and tools that generally go along with it.
|
|
|
|
It is not a project like create-react-app, create-react-app is used as a starter kit that handles all your scripts underneath, this is a project for developers who want more control over their application.
|
|
|
|
Tech(Library or Framework) | Version |
|
|
--- | --- |
|
|
React (Render Library) | 18.2.0
|
|
Redux (Global State Management) | 4.2.1
|
|
React Router DOM (Routing) | 6.17.0
|
|
Jest (Testing) | 29.7.0
|
|
Cypress (E2E Testing) | 13.3.1
|
|
Typescript | 5.2.2
|
|
|
|
## Setup
|
|
To create a new project run in the terminal:
|
|
```
|
|
npx @aleleba/create-react-go-ssr app-name
|
|
```
|
|
Then run:
|
|
```
|
|
cd app-name
|
|
```
|
|
You will need to create a new .env file at the root of the project for global config.
|
|
This is an exaple of config.
|
|
```
|
|
#Environment
|
|
ENV= #Default production
|
|
#App Port
|
|
PORT= #Default 80
|
|
#Host
|
|
HOST= #Default localhost
|
|
#Prefix URL
|
|
PREFIX_URL= #Default ''
|
|
```
|
|
The default environment is production and the app port defauld is 80.
|
|
|
|
### For Development
|
|
In the terminal run:
|
|
```
|
|
npm run start-frontend:dev
|
|
npm run start-server:dev
|
|
```
|
|
The ENV enviroment variable should be "development" and choose the port of your preference with the enviroment variable PORT.
|
|
|
|
You will find the root component on:
|
|
```
|
|
src/frontend/components/App.tsx
|
|
```
|
|
You will find the Initial Component on:
|
|
```
|
|
src/frontend/components/InitialComponent.tsx
|
|
```
|
|
|
|
The manage of the routes you should find on:
|
|
```
|
|
src/routes
|
|
```
|
|
It is using "useRoutes" hook for working, more information for this here: (https://reactrouter.com/docs/en/v6/api#useroutes)
|
|
|
|
This will start the app in development mode, also it have Hot Reloading!
|
|
Enjoy coding!
|
|
|
|
### For Production
|
|
In the terminal run:
|
|
```
|
|
npm run build
|
|
```
|
|
It will create a build folder and run:
|
|
```
|
|
npm start
|
|
```
|
|
This will start the app.
|
|
|
|
## Cheers
|
|
Hope you enjoy this proyect! Sincerely Alejandro Lembke Barrientos.
|