⭐ Star this repository if you find it valuable and worth maintaining.
👁 Watch this repository to get notified about new releases, issues, etc.
This is a GitHub repository template for a React website. You can use it:
- to create a new repoisitory with automation and environment setup,
- as reference when improving automation for an existing repository.
It includes:
- continuous integration via GitHub Actions,
- build automation via Yarn,
- dependency management using NPM Packages,
- code formatting and linting using eslint,
- code coverage HTML report
- dependencies scanning and updating thanks to Dependabot,
- security code analysis using CodeQL Action,
- Sign up on Codecov and configure Codecov GitHub Application for all repositories.
- Click the
Use this templatebutton (alt. clone or download this repository). - Replace all occurrences of
runtime-machines/react-templatetoyour_org/repo_namein all files. - Replace all occurrences of
react-templatetorepo_namein all files. - Update the following files:
- CHANGELOG.md
- CODE_OF_CONDUCT.md
- LICENSE (when defined)
- README.md
yarnyarn start
yarn build
yarn lint
yarn test
yarn test:coverage
.
├── public # Express server static path and Webpack bundles output
│ ├── favicon.ico # App favicon
│ ├── logo192.png # App logo small
│ ├── logo512.png # App logo large
│ └── manifest.json # App favicon and logo manifest
├── src # App source code
│ ├── config # App configuration by environments
│ ├── app # App root component
│ ├── components # Reusable components
│ ├── pages # Page components
│ ├── layouts # Layouts available to the whole project (e.g. footer etc.)
│ ├── utils # App-wide utils (e.g. mock store creator for testing etc.)
│ ├── static # Static assets (e.g. images, fonts etc.)
│ └── routes # Routes configuration for both client-side and server-side
├── webpack* # Webpack configurations
├── tsconfig.json # TypeScript configuration
└── .eslintrc.* # ESLint configuration
This setup uses Browserslist to target browsers.
The default list of supported browsers is listed in the package.json file:
{
"browserslist": {
"production": [">0.2%", "not dead", "not op_mini all"],
"development": ["last 1 chrome version", "last 1 firefox version", "last 1 safari version"]
}
}This means that supported browsers vary based on current usage data.
This project license
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the license, shall be licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md.