This repo is meant as a playground for developing new components, ideas, and various utilities.
It's not meant to be a product, just a dumping ground for misc useful code.
npx create-reate-app <projectName>
eslint --init
(StandardJS code standard, yes to installing packages)- Delete the
package-lock.json
(eslint
will only usenpm
instead ofyarn
) and runyarn
again. - Copy over and tweak
.eslintrc
from previous project. eslint --fix src
to automatically clean up the React scaffolded code as much as possible. (eslint
should be installed globally as well)- Manually clean up rest of lint errors. You can check with
eslint src
. - Create the project Firebase (enable Hosting, Firestore, and Google Auth).
- Install the
firebase-tools
npm
package globally. firebase login
(only needed if you haven't logged in previously from another project)firebase init
to associate the repo with the firebase project (usebuild
instead ofpublic
, yes to SPA rewrite).- Copy over the Firebase settings from the console into
firebaseConfig.js
(might need to fix the linting) - Install the following npm packages:
@material-ui/core @material-ui/icons firebase
and as dev dependenciesbabel-plugin-transform-imports react-app-rewired customize-cra
. - Optimize
@material-ui
imports by copying over.babelrc.js
from a previous project. See Material-UI guide on minimizing bundle size if you are curious. - Change
react-scripts start
toreact-app-rewired start
inpackage.json
find node_modules/* | wc -l
. Gasp. Shock. Horror. Move on with business as usual.- Copy over the standard set of
hooks
andcommon
components from another repo (might want to make this a package in the future). - You are now ready to start adding actual functionality.
yarn build
firebase deploy