firebase-yarn-workspaces
v1.0.0
Published
Copies and links local yarn workspaces into Firebase projects for deployment
Downloads
86
Readme
firebase-yarn-workspaces
Yarn workspaces + Firebase deployments made easy.
Problem
Firebase functions does not support deployment of dependencies from a monorepo structure. To use dependencies which are not published to a registry, dependency code must be copied into the functions
directory & referenced accordingly, prior to running firebase deploy --functions
.
Solution
npx firebase-yarn-workspaces --scope <FIREBASE_FUNCTIONS_WORKSPACE_NAME>
This command, run at the root of your monorepo:
- Automatically builds a yarn dependency graph of workspaces used in your firebase functions
package.json
- Copies all necessary package code into a
.firebase-yarn-workspaces
tmp folder inside your firebase functions workspace - Modifies
package.json
in firebase functions workspace and in all nested dependencies to point tofile:
references
NOTE: Rollback of package.json changes is still TODO. Recommended use is currently only in an ephemeral environment, such as CI or in a pruned Turborepo 'out' folder (see examples)
Options
| Flag | Alias | Default | Required? | Description |
| - | - | - | - | - |
| --scope | -s | - | ✅ | Firebase functions workspace name. Example: --scope firebase-fns
| --dir | -d | process.cwd()
| ❌ | Path to workspace root Example: --dir ./out
| --tmpDir | -t | .firebase-yarn-workspaces
| ❌ | Custom tmp directory folder where dependency packages will be placed Example: --tmpDir custom-tmp-folder
Examples
- Local pruned Turborepo (Link coming soon)
- Vanilla CI via GitHub Actions (Link coming soon)
- Turborepo CI via GitHub Actions (Link coming soon)s