@@ -25,6 +25,7 @@ import resolveModule from '@rollup/plugin-node-resolve';
2525import rollupTypescriptPlugin from 'rollup-plugin-typescript2' ;
2626import sourcemaps from 'rollup-plugin-sourcemaps' ;
2727import typescript from 'typescript' ;
28+ import alias from '@rollup/plugin-alias' ;
2829
2930// remove -exp from dependencies name
3031const deps = Object . keys ( pkg . dependencies || { } ) . map ( name =>
@@ -38,6 +39,15 @@ const typescriptPlugin = rollupTypescriptPlugin({
3839 transformers : [ importPathTransformer ]
3940} ) ;
4041
42+ const typescriptPluginCDN = rollupTypescriptPlugin ( {
43+ typescript,
44+ tsconfigOverride : {
45+ compilerOptions : {
46+ declaration : false
47+ }
48+ }
49+ } ) ;
50+
4151/**
4252 * Individual Component Builds
4353 */
@@ -84,4 +94,47 @@ const componentBuilds = pkg.components
8494 } )
8595 . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
8696
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