In order to keep the typescript shared modules up to date for their dependents to use while running locally this adds them to pm2 so that a `tsc --watch` can run alongside the other services.
Note, this DOES NOT automatically restart dependent javascript service processes.
This change refactors pm2-all.sh in order to start processes in dependency topological order. This requires an update to most pm2.config.js files in order to set PATH correctly while running under yarn.
To reduce duplication and encourage consistency in our
typescript builds this extracts most of the options
into two base configs, one for node and one for browsers.
Also, in order to better utilize workspaces the require
paths to fxa-shared and fxa-react were updated throughout.
This reduces the boilerplate when all your package
needs is to copy the contents of it's own directory to /app
and a pm2.config.js file exists
To allow more packages to use the default, /fxa-geodb and
/fxa-shared are included in the fxa-node base image.
Custom images can still be made by having a Dockerfile as before.
This adds a base node image and builder image so
that all our service images can share the same
common base, be smaller, and require less customization.
why, after all these years?
because there's a few annoying cases where the loopback
makes dev harder. When you try to test a flow from a not
local machine, like a tv, mobile device, or a saucelabs
proxy session. With localhost it's easy enough to forward
but loopback not so much
enough is enough
why: several reasons...
- to have a unified approach and pattern for:
- debugging
- fs watching for local dev
- running services in dev
- configuring services in dev
- to improve the initial clone and subsequent `npm ci` experience
- to make future work on tooling easier