[workers] Use yarn workspaces

The duplicate disk usage of individual node_modules is starting to get
prohibitive.
This commit is contained in:
Manav Rathi 2024-06-21 11:21:32 +05:30
parent 08ceb0d5f2
commit 14e0afd867
No known key found for this signature in database
11 changed files with 42 additions and 73 deletions

View File

@ -3,24 +3,25 @@
Source code for our
[Cloudflare Workers](https://developers.cloudflare.com/workers/).
Each worker is a self contained directory with its each `package.json`.
Workers are organized as Yarn workspaces sharing a common `package.json` and
base `tsconfig`. They can however be deployed individually.
## Deploying
- Switch to a worker directory, e.g. `cd github-discord-notifier`.
Install dependencies with `yarn`.
- Install dependencies (if needed) with `yarn`
> If you have previously deployed, then you will have an old `yarn.lock`. In
> this case it is safe to delete and recreate using `rm yarn.lock && yarn`.
> If you have previously deployed, then you will have an old `yarn.lock`. In
> this case it is safe to delete and recreate using `rm yarn.lock && yarn`.
Then, to deploy an individual worker
- Login into wrangler (if needed) using `yarn wrangler login`
- Login into wrangler (if needed) using `yarn workspace health-check wrangler login`
- Deploy! `yarn wrangler deploy`
- Deploy! `yarn workspace health-check wrangler deploy`
Wrangler is the CLI provided by Cloudflare to manage workers. Apart from
deploying, it also allows us to stream logs from running workers by using
`yarn wrangler tail`.
deploying, it also allows us to stream logs from running workers by using `yarn
workspace <worker-name> wrangler tail`.
## Creating a new worker

View File

@ -1,10 +1,5 @@
{
"name": "cast-albums",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "files",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "github-discord-notifier",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "health-check",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -0,0 +1,13 @@
{
"name": "workers",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"workspaces": [
"*"
],
"packageManager": "yarn@1.22.22"
}

View File

@ -1,10 +1,5 @@
{
"name": "public-albums",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "files",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"name": "sentry-reporter",
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "tail",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "thumbnails",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}

View File

@ -1,10 +1,5 @@
{
"name": "uploader",
"private": true,
"devDependencies": {
"@cloudflare/workers-types": "^4.20240614.0",
"typescript": "^5",
"wrangler": "^3"
},
"packageManager": "yarn@1.22.22"
"version": "0.0.0",
"private": true
}