Skip to content

Commit c00870a

Browse files
committed
add type module cdn scripts
1 parent 566b88d commit c00870a

File tree

2 files changed

+67
-7
lines changed

2 files changed

+67
-7
lines changed

packages-exp/firebase-exp/rollup.config.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import resolveModule from '@rollup/plugin-node-resolve';
2424
import rollupTypescriptPlugin from 'rollup-plugin-typescript2';
2525
import sourcemaps from 'rollup-plugin-sourcemaps';
2626
import typescript from 'typescript';
27+
import alias from '@rollup/plugin-alias';
2728

2829
const external = Object.keys(pkg.dependencies || {});
2930
const plugins = [sourcemaps(), resolveModule(), json(), commonjs()];
@@ -89,7 +90,7 @@ const componentBuilds = pkg.components
8990
/**
9091
* CDN script builds
9192
*/
92-
93+
const FIREBASE_APP_URL = `https://www.gstatic.com/firebasejs/${pkg.version}/firebase-app.js`;
9394
const cdnBuilds = [
9495
{
9596
input: 'app/index.cdn.ts',
@@ -103,7 +104,6 @@ const cdnBuilds = [
103104
...pkg.components
104105
.filter(component => component !== 'app')
105106
.map(component => {
106-
const pkg = require(`./${component}/package.json`);
107107
// It is needed for handling sub modules, for example firestore/lite which should produce firebase-firestore-lite.js
108108
// Otherwise, we will create a directory with '/' in the name.
109109
const componentName = component.replace('/', '-');
@@ -115,11 +115,18 @@ const cdnBuilds = [
115115
sourcemap: true,
116116
format: 'es'
117117
},
118-
plugins: [...plugins, typescriptPluginCDN],
119-
external: ['@firebase/app-exp', '@firebase/util']
118+
plugins: [
119+
...plugins,
120+
typescriptPluginCDN,
121+
alias({
122+
entries: {
123+
'@firebase/app': FIREBASE_APP_URL
124+
}
125+
})
126+
],
127+
external: [FIREBASE_APP_URL]
120128
};
121129
})
122130
];
123131

124-
// export default [...appBuilds, ...componentBuilds, ...cdnBuilds];
125-
export default [...cdnBuilds];
132+
export default [...appBuilds, ...componentBuilds, ...cdnBuilds];

packages-exp/firebase-exp/rollup.config.release.js

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import resolveModule from '@rollup/plugin-node-resolve';
2525
import rollupTypescriptPlugin from 'rollup-plugin-typescript2';
2626
import sourcemaps from 'rollup-plugin-sourcemaps';
2727
import typescript from 'typescript';
28+
import alias from '@rollup/plugin-alias';
2829

2930
// remove -exp from dependencies name
3031
const 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

Comments
 (0)