Simplify building NodeJS applications on Google App Engine (GAE)
- gae-js-core
- gae-js-firestore
- gae-js-firestore-backups
- gae-js-datastore
- gae-js-datastore-backups
- gae-js-storage
- gae-js-tasks
- gae-js-bigquery
- gae-js-google-auth
- gae-js-firebase-auth
- gae-js-migrations
- gae-js-search
This is a mono-repo using npm workspaces. Publishing is done using Atlassian Changesets (https://github.com/changesets/changesets). This helps be consistent with versioning and auto-generates changelogs.
Here's the basic flow:
- Create one or more changesets
- Once you've made your changes, create a changeset. You can create more than one changeset for a single version.
npx changeset
- From the cli tool, choose which packages to update and if major/minor/patch update
- Enter summary for changes
- Review and commit files
- Update package versions
- Based on the changeset configuration - this will automatically version the packages.
npx changeset version
- Commit changes
- Build and publish
Would be nice if this was done from CI but for now we do this locally.
- Check you're running a suitable version of node/npm. If not switch and clear out old node_modules.
- Build and publish
npm run publish-libs
There's nothing automated to do this. Essentially you just need to add a new package to /packages
folder but
these steps should save some time:
- Create new folder in
/packages
. e.g./packages/gae-js-new-thing
- Copy
package.json
,tsconfig.json
,tsconfig.prod.json
,jest.config.json
from one of the existing packages - Update
package.json
to match desired name, version, dependencies, etc - Update
tsconfig.json
to match desired project references. - Create file src/index.ts and export some constant
- Run
npm install
from root folder - Run
npm run build
from project folder