Skip to content

Commit 1971dde

Browse files
Tree-shake UMD builds (#3493)
1 parent 3a9eaac commit 1971dde

File tree

4 files changed

+75
-15
lines changed

4 files changed

+75
-15
lines changed

packages/firestore/exp/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "@firebase/firestore/exp",
33
"description": "A tree-shakeable version of the Firestore SDK",
44
"main": "../dist/exp/index.node.umd.js",
5+
"main-esm": "../dist/exp/index.node.esm2017.js",
56
"module": "../dist/exp/index.browser.esm2017.js",
67
"browser": "../dist/exp/index.browser.esm2017.js",
78
"react-native": "../dist/exp/index.rn.esm2017.js",

packages/firestore/lite/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"name": "@firebase/firestore/lite",
33
"description": "A lite version of the Firestore SDK",
4-
"main": "../dist/lite/index.node.esm2017.js",
4+
"main": "../dist/lite/index.node.umd.js",
5+
"main-esm": "../dist/lite/index.node.esm2017.js",
56
"module": "../dist/lite/index.browser.esm2017.js",
67
"browser": "../dist/lite/index.browser.esm2017.js",
78
"react-native": "../dist/lite/index.rn.esm2017.js",

packages/firestore/rollup.config.exp.js

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import alias from '@rollup/plugin-alias';
2020
import typescriptPlugin from 'rollup-plugin-typescript2';
2121
import typescript from 'typescript';
2222
import path from 'path';
23+
import sourcemaps from 'rollup-plugin-sourcemaps';
2324
import { terser } from 'rollup-plugin-terser';
2425
import { importPathTransformer } from '../../scripts/exp/ts-transform-import-path';
2526

@@ -32,14 +33,14 @@ const nodePlugins = [
3233
typescript,
3334
tsconfigOverride: {
3435
compilerOptions: {
35-
target: 'es5'
36+
target: 'es2017'
3637
}
3738
},
3839
clean: true,
3940
abortOnError: false,
4041
transformers: [util.removeAssertTransformer, importPathTransformer]
4142
}),
42-
json()
43+
json({ preferConst: true })
4344
];
4445

4546
const browserPlugins = [
@@ -62,15 +63,41 @@ const browserPlugins = [
6263
];
6364

6465
const allBuilds = [
65-
// Node build
66+
// Node ESM build
6667
{
6768
input: './exp/index.ts',
69+
output: {
70+
file: path.resolve('./exp', pkg['main-esm']),
71+
format: 'es',
72+
sourcemap: true
73+
},
74+
plugins: [alias(util.generateAliasConfig('node')), ...nodePlugins],
75+
external: util.resolveNodeExterns,
76+
treeshake: {
77+
moduleSideEffects: false
78+
}
79+
},
80+
// Node UMD build
81+
{
82+
input: path.resolve('./exp', pkg['main-esm']),
6883
output: {
6984
file: path.resolve('./exp', pkg.main),
7085
format: 'umd',
71-
name: 'firebase.firestore'
86+
name: 'firebase.firestore',
87+
sourcemap: true
7288
},
73-
plugins: [alias(util.generateAliasConfig('node')), ...nodePlugins],
89+
plugins: [
90+
typescriptPlugin({
91+
typescript,
92+
compilerOptions: {
93+
allowJs: true,
94+
target: 'es5'
95+
},
96+
include: ['dist/exp/*.js']
97+
}),
98+
json(),
99+
sourcemaps()
100+
],
74101
external: util.resolveNodeExterns,
75102
treeshake: {
76103
moduleSideEffects: false
@@ -81,7 +108,8 @@ const allBuilds = [
81108
input: './exp/index.ts',
82109
output: {
83110
file: path.resolve('./exp', pkg.browser),
84-
format: 'es'
111+
format: 'es',
112+
sourcemap: true
85113
},
86114
plugins: [alias(util.generateAliasConfig('browser')), ...browserPlugins],
87115
external: util.resolveBrowserExterns,
@@ -94,7 +122,8 @@ const allBuilds = [
94122
input: './exp/index.ts',
95123
output: {
96124
file: path.resolve('./exp', pkg['react-native']),
97-
format: 'es'
125+
format: 'es',
126+
sourcemap: true
98127
},
99128
plugins: [alias(util.generateAliasConfig('rn')), ...browserPlugins],
100129
external: util.resolveBrowserExterns,

packages/firestore/rollup.config.lite.js

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import json from 'rollup-plugin-json';
2020
import alias from '@rollup/plugin-alias';
2121
import typescriptPlugin from 'rollup-plugin-typescript2';
2222
import typescript from 'typescript';
23+
import sourcemaps from 'rollup-plugin-sourcemaps';
2324
import { terser } from 'rollup-plugin-terser';
2425
import { importPathTransformer } from '../../scripts/exp/ts-transform-import-path';
2526

@@ -32,14 +33,14 @@ const nodePlugins = [
3233
typescript,
3334
tsconfigOverride: {
3435
compilerOptions: {
35-
target: 'es5'
36+
target: 'es2017'
3637
}
3738
},
3839
clean: true,
3940
abortOnError: false,
4041
transformers: [util.removeAssertTransformer, importPathTransformer]
4142
}),
42-
json()
43+
json({ preferConst: true })
4344
];
4445

4546
const browserPlugins = [
@@ -62,15 +63,41 @@ const browserPlugins = [
6263
];
6364

6465
const allBuilds = [
65-
// Node build
66+
// Node ESM build
6667
{
6768
input: './lite/index.ts',
69+
output: {
70+
file: path.resolve('./lite', pkg['main-esm']),
71+
format: 'es',
72+
sourcemap: true
73+
},
74+
plugins: [alias(util.generateAliasConfig('node')), ...nodePlugins],
75+
external: util.resolveNodeExterns,
76+
treeshake: {
77+
moduleSideEffects: false
78+
}
79+
},
80+
// Node UMD build
81+
{
82+
input: path.resolve('./lite', pkg['main-esm']),
6883
output: {
6984
file: path.resolve('./lite', pkg.main),
7085
format: 'umd',
71-
name: 'firebase.firestore'
86+
name: 'firebase.firestore',
87+
sourcemap: true
7288
},
73-
plugins: [alias(util.generateAliasConfig('node')), ...nodePlugins],
89+
plugins: [
90+
typescriptPlugin({
91+
typescript,
92+
compilerOptions: {
93+
allowJs: true,
94+
target: 'es5'
95+
},
96+
include: ['dist/lite/*.js']
97+
}),
98+
json(),
99+
sourcemaps()
100+
],
74101
external: util.resolveNodeExterns,
75102
treeshake: {
76103
moduleSideEffects: false
@@ -81,7 +108,8 @@ const allBuilds = [
81108
input: './lite/index.ts',
82109
output: {
83110
file: path.resolve('./lite', pkg.browser),
84-
format: 'es'
111+
format: 'es',
112+
sourcemap: true
85113
},
86114
plugins: [alias(util.generateAliasConfig('browser')), ...browserPlugins],
87115
external: util.resolveBrowserExterns,
@@ -94,7 +122,8 @@ const allBuilds = [
94122
input: './lite/index.ts',
95123
output: {
96124
file: path.resolve('./lite', pkg['react-native']),
97-
format: 'es'
125+
format: 'es',
126+
sourcemap: true
98127
},
99128
plugins: [alias(util.generateAliasConfig('rn')), ...browserPlugins],
100129
external: util.resolveBrowserExterns,

0 commit comments

Comments
 (0)