Template for a React app
Install latest Node.js LTS
# Debian, Ubuntu
sudo apt update
sudo apt install nodejs
nodejs -v
# Windows
choco install nodejs-lts
Clone the repo and install dependencies
# git clone will create a directory named myAppName
# if the directory is already created, then use .(dot) instead of myAppName
git clone https://github.com/junekimdev/template-react-app.git <myAppName>
cd myAppName
yarn
Make sure to remove .git
directory to start afresh
# remove .git directory beforehand
git init
git add .
git commit -m "Initial commit"
git branch -M master
git remote add origin <myGitRepo>
git push -u origin master
Add a file .env
that includes environmental variables
example
#NODE_ENV=production
NEXT_PUBLIC_URL=https://app.domain.com
#NEXT_PUBLIC_GTM_ID=
NEXT_PUBLIC_API_URL=http://api.domain.com
- Markup language (Web Standard): HTML5
- Stylesheet language (Web Standard): CSS3
- Script language: ECMAScript 2015 (a.k.a Javascript ES6)
- Javascript Package Manager: Yarn
- Script preprocessor: Typescript
- Website client-side rendering framework: ReactJS
- Website server-side rendering framework: NextJS
- Package management: Webpack (included in NextJS)
- Transpiler: Speedy Web Compiler (included in NextJS)
- State management (client): Recoil
- State management (server): TanStack Query
- HTTP interface: fetch API (part of WHATWG Web Standard)
- JavaScript Testing Framework: Jest
- React Testing Library: @testing-library/react
- Browser style normalization script: Normalize
- Stylesheet preprocessor: SCSS
- Stylesheet postprocessor: Postcss (included in NextJS)
- Postcss plugin: Autoprefixer (included in NextJS)
- Version control: Git
- Source code repository: GitHub
- Linter: ESLint
- Formatter: Prettier
- Template engine for code generation: EJS
Root ├── components ├── _theme.scss └── eachComponent ├── index.ts ├── eachComponent.module.scss ├── eachComponentInteractor.tsx ├── eachComponentStates.ts ├── eachComponentPresenter.tsx ├── eachComponentViewName.tsx └── eachComponentType.ts ├── controllers ├── index.ts ├── apiURLs.ts ├── net └── staticQuery.ts └── moreControllers.ts ├── pages ├── _app.tsx ├── _document.tsx ├── _error.tsx ├── 404.tsx ├── index.ts └── global.scss ├── public ├── favicon.ico (similar files) ├── robot.txt └── assets └── images └── eachImage.png └── templates └── eachCodeGenerationTemplate.ejs
- With a View file
node codegen.js --name=myComponent
- Without a View file
node codegen.js --name=myComponent --V
- June Kim - Initial work - Github
This project is licensed under the MIT License - see the LICENSE file for details