isolate-package 1.9.3 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/docs/firebase.md +34 -21
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
- [Modern Yarn](#modern-yarn)
|
|
32
32
|
- [API](#api)
|
|
33
33
|
- [The internal packages strategy](#the-internal-packages-strategy)
|
|
34
|
+
- [Firebase](#firebase)
|
|
34
35
|
|
|
35
36
|
<!-- /TOC -->
|
|
36
37
|
|
|
@@ -435,3 +436,8 @@ to the Typescript source files, but since the shared code was embedded in the
|
|
|
435
436
|
bundle, they will never be referenced via import statements. So the manifest the
|
|
436
437
|
entry declarations are never used. The reason the packages are included in the
|
|
437
438
|
isolated output is to instruct package manager to install their dependencies.
|
|
439
|
+
|
|
440
|
+
## Firebase
|
|
441
|
+
|
|
442
|
+
For detailed information on how to use isolate-package in combination with
|
|
443
|
+
Firebase [see this documentation](./docs/firebase.md#firebase)
|
package/docs/firebase.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Firebase
|
|
2
2
|
|
|
3
|
+
<!-- TOC -->
|
|
4
|
+
|
|
5
|
+
- [Motivation](#motivation)
|
|
6
|
+
- [Example](#example)
|
|
7
|
+
- [Quick Start](#quick-start)
|
|
8
|
+
- [Firebase Tools With Isolate](#firebase-tools-with-isolate)
|
|
9
|
+
- [Deploying from multiple packages](#deploying-from-multiple-packages)
|
|
10
|
+
- [Deploying from the root](#deploying-from-the-root)
|
|
11
|
+
|
|
12
|
+
<!-- /TOC -->
|
|
13
|
+
|
|
3
14
|
> !! There is
|
|
4
15
|
> [a fork of firebase-tools](https://github.com/0x80/firebase-tools-with-isolate),
|
|
5
16
|
> where isolate-package is integrated.
|
|
@@ -16,29 +27,15 @@ There is nothing Firebase-specific to this solution and there should be other
|
|
|
16
27
|
use-cases for it, but that is why this documentation contains some instructions
|
|
17
28
|
related to Firebase.
|
|
18
29
|
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
I recommend using
|
|
22
|
-
[the fork](https://github.com/0x80/firebase-tools-with-isolate) for monorepos
|
|
23
|
-
until it is officially integrated. It not only simplifies the setup but more
|
|
24
|
-
importantly allows `isolate` to run as an integral part of the deployment
|
|
25
|
-
process, so it doesn't affect anything prior to deployment. Because of this, you
|
|
26
|
-
preserve live code updates when running the local Firebase emulators, which I
|
|
27
|
-
think is highly desirable.
|
|
28
|
-
|
|
29
|
-
The fork is almost identical, and the integration with isolate-package does not
|
|
30
|
-
affect any existing functionality, so I do not think there's reason to worry
|
|
31
|
-
about things breaking. I will sync the fork with the upstream firebase-tools on
|
|
32
|
-
a regular basis. The fork versions will match the firebase-tools versions for
|
|
33
|
-
clarity.
|
|
34
|
-
|
|
35
|
-
## A Quick Start
|
|
30
|
+
## Example
|
|
36
31
|
|
|
37
32
|
If you are not completely confident that your monorepo setup is solid, I advise
|
|
38
33
|
you to check out my in-dept boilerplate at
|
|
39
34
|
[mono-ts](https://github.com/0x80/mono-ts) where many different aspects are
|
|
40
35
|
discussed and `isolate-package` is used to demonstrate Firebase deployments.
|
|
41
36
|
|
|
37
|
+
## Quick Start
|
|
38
|
+
|
|
42
39
|
This section describes the steps required for Firebase deployment, assuming:
|
|
43
40
|
|
|
44
41
|
- You use a fairly typical monorepo setup
|
|
@@ -46,7 +43,7 @@ This section describes the steps required for Firebase deployment, assuming:
|
|
|
46
43
|
deploy to Firebase, hereafter referred to as the "target package".
|
|
47
44
|
|
|
48
45
|
If your setup diverges from a traditional one, please continue reading the
|
|
49
|
-
[Prerequisites](#prerequisites) section.
|
|
46
|
+
[Prerequisites](../README.md#prerequisites) section.
|
|
50
47
|
|
|
51
48
|
1. In the target package, install `isolate-package` and `firebase-tools` by
|
|
52
49
|
running `pnpm add isolate-package firebase-tools -D` or the Yarn / NPM
|
|
@@ -66,6 +63,22 @@ gen functions, deploy different node versions, and decrease the built output
|
|
|
66
63
|
size and dependency lists for each package, improving deployment and cold-start
|
|
67
64
|
times.
|
|
68
65
|
|
|
66
|
+
## Firebase Tools With Isolate
|
|
67
|
+
|
|
68
|
+
I recommend using
|
|
69
|
+
[the fork](https://github.com/0x80/firebase-tools-with-isolate) for monorepos
|
|
70
|
+
until it is officially integrated. It not only simplifies the setup but more
|
|
71
|
+
importantly allows `isolate` to run as an integral part of the deployment
|
|
72
|
+
process, so it doesn't affect anything prior to deployment. Because of this, you
|
|
73
|
+
preserve live code updates when running the local Firebase emulators, which I
|
|
74
|
+
think is highly desirable.
|
|
75
|
+
|
|
76
|
+
The fork is almost identical, and the integration with isolate-package does not
|
|
77
|
+
affect any existing functionality, so I do not think there's reason to worry
|
|
78
|
+
about things breaking. I will sync the fork with the upstream firebase-tools on
|
|
79
|
+
a regular basis. The fork versions will match the firebase-tools versions for
|
|
80
|
+
clarity.
|
|
81
|
+
|
|
69
82
|
## Deploying from multiple packages
|
|
70
83
|
|
|
71
84
|
You can deploy to Firebase from multiple packages in your monorepo, in which
|
|
@@ -101,9 +114,9 @@ information,
|
|
|
101
114
|
[read this](https://firebase.google.com/docs/functions/beta/organize-functions).
|
|
102
115
|
|
|
103
116
|
Make sure your Firebase package adheres to the things mentioned in
|
|
104
|
-
[prerequisites](#prerequisites) and its package manifest contains
|
|
105
|
-
`"main"`, or `"module"` if you set `"type": "module"`, so Firebase
|
|
106
|
-
entry point to your source code.
|
|
117
|
+
[prerequisites](../README.md#prerequisites) and its package manifest contains
|
|
118
|
+
the field `"main"`, or `"module"` if you set `"type": "module"`, so Firebase
|
|
119
|
+
knows the entry point to your source code.
|
|
107
120
|
|
|
108
121
|
## Deploying from the root
|
|
109
122
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "isolate-package",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.4",
|
|
4
4
|
"description": "Isolate a monorepo package with its shared dependencies to form a self-contained directory, compatible with Firebase deploy",
|
|
5
5
|
"author": "Thijs Koerselman",
|
|
6
6
|
"license": "MIT",
|