- ReactJS support with TypeScript
- Testing support using Jest and React Testing Library
- Formatting support using Prettier
- ESLint support
- Ability to collect code coverage via Jest
- Support for Storybook
yarn install
to install dependencies.yarn start
to develop locally.yarn test
to test and see the code coverage.yarn build
to create a production build.yarn build-for-pwa
to create a production build and generateassetlinks.json
for PWA.yarn start:prod
to serve production build on port5000
.yarn create:start:prod
to create and start a production build.yarn storybook
to start storybook in development mode.yarn build-storybook
to create production build for storybook.npx -y serve storybook-static -l 5858
to serve production build for storybook on port5858
.
Since this is a React Single Page Application (SPA), you may find that if you refresh the page for a URL other than /
in production build
that you get 404
message. This is because when you refresh the page at a deeper URL, your client-side router (react-router
) in this project
has not got chance to load and handle routing. Therefore, since your do not have a server (in this project), you
get 404
back.
A nice explanation is available on this stackoverflow answer
There are 2 places we need to resolve this problem - at production build hosted locally, and production build hosted on provider.
This project uses serve
which has a flag
called -s
(Github). This flag re-writes all non-found
requests to index.html
. This loads javascript code at /
, which kicks off the client-side router, hence making URL
refreshes work.
This project is hosted on Vercel, so we needed to write a configuration called vercel.json
, which is
available here.
If you are using Firebase Hosting, refer to their documentation on how to configure re-writes.
For other provides, I encourage folks to update this documentation by opening up a PR. If you do, please provide the reference to the official documentation.