@@ -25,6 +25,7 @@ import resolveModule from '@rollup/plugin-node-resolve';
25
25
import rollupTypescriptPlugin from 'rollup-plugin-typescript2' ;
26
26
import sourcemaps from 'rollup-plugin-sourcemaps' ;
27
27
import typescript from 'typescript' ;
28
+ import alias from '@rollup/plugin-alias' ;
28
29
29
30
// remove -exp from dependencies name
30
31
const deps = Object . keys ( pkg . dependencies || { } ) . map ( name =>
@@ -38,6 +39,15 @@ const typescriptPlugin = rollupTypescriptPlugin({
38
39
transformers : [ importPathTransformer ]
39
40
} ) ;
40
41
42
+ const typescriptPluginCDN = rollupTypescriptPlugin ( {
43
+ typescript,
44
+ tsconfigOverride : {
45
+ compilerOptions : {
46
+ declaration : false
47
+ }
48
+ }
49
+ } ) ;
50
+
41
51
/**
42
52
* Individual Component Builds
43
53
*/
@@ -84,4 +94,47 @@ const componentBuilds = pkg.components
84
94
} )
85
95
. reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
86
96
87
- export default [ ...appBuilds , ...componentBuilds ] ;
97
+ /**
98
+ * CDN script builds
99
+ */
100
+ const FIREBASE_APP_URL = `https://www.gstatic.com/firebasejs/${ pkg . version } /firebase-app.js` ;
101
+ const cdnBuilds = [
102
+ {
103
+ input : 'app/index.cdn.ts' ,
104
+ output : {
105
+ file : 'firebase-app.js' ,
106
+ sourcemap : true ,
107
+ format : 'es'
108
+ } ,
109
+ plugins : [ ...plugins , typescriptPluginCDN ]
110
+ } ,
111
+ ...pkg . components
112
+ . filter ( component => component !== 'app' )
113
+ . map ( component => {
114
+ const pkg = require ( `./${ component } /package.json` ) ;
115
+ // It is needed for handling sub modules, for example firestore/lite which should produce firebase-firestore-lite.js
116
+ // Otherwise, we will create a directory with '/' in the name.
117
+ const componentName = component . replace ( '/' , '-' ) ;
118
+
119
+ return {
120
+ input : `${ component } /index.ts` ,
121
+ output : {
122
+ file : `firebase-${ componentName } .js` ,
123
+ sourcemap : true ,
124
+ format : 'es'
125
+ } ,
126
+ plugins : [
127
+ ...plugins ,
128
+ typescriptPluginCDN ,
129
+ alias ( {
130
+ entries : {
131
+ '@firebase/app' : FIREBASE_APP_URL ,
132
+ '@firebase/installations' : '@firebase/installations-exp'
133
+ }
134
+ } )
135
+ ] ,
136
+ external : [ FIREBASE_APP_URL ]
137
+ } ;
138
+ } )
139
+ ] ;
140
+ export default [ ...appBuilds , ...componentBuilds , ...cdnBuilds ] ;
0 commit comments