Skip to content

Commit 4983420

Browse files
authored
Upgrade closure-builder and optimize build size. (#1557)
* Upgraded closure-builder (necessary to be able to specify multiple defines). * Disabled closure debug code (in particular logging) and several legacy fallbacks that we don't need.
1 parent 6a0154a commit 4983420

File tree

3 files changed

+65
-42
lines changed

3 files changed

+65
-42
lines changed

packages/webchannel-wrapper/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
},
1616
"license": "Apache-2.0",
1717
"devDependencies": {
18-
"closure-builder": "2.3.0",
18+
"closure-builder": "2.3.4",
1919
"rollup": "0.57.1",
2020
"rollup-plugin-commonjs": "9.1.0",
2121
"rollup-plugin-hypothetical": "2.1.0",

packages/webchannel-wrapper/tools/build.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,19 @@ const hypothetical = require('rollup-plugin-hypothetical');
2323
const glob = closureBuilder.globSupport();
2424
const { resolve } = require('path');
2525

26+
const closureDefines = [
27+
// Avoid unsafe eval() calls (https://github.com/firebase/firebase-js-sdk/issues/798)
28+
'goog.json.USE_NATIVE_JSON=true',
29+
// Disable debug logging (saves 8780 bytes).
30+
'goog.DEBUG=false',
31+
// Disable fallbacks for running async code (saves 1472 bytes).
32+
'goog.ASSUME_NATIVE_PROMISE=true',
33+
// Disables IE8-specific event fallback code (saves 523 bytes).
34+
'goog.events.CAPTURE_SIMULATION_MODE=0',
35+
// Disable IE-Specific ActiveX fallback for XHRs (saves 524 bytes).
36+
'goog.net.XmlHttpDefines.ASSUME_NATIVE_XHR=true'
37+
];
38+
2639
// commonjs build
2740
closureBuilder.build({
2841
name: 'firebase.webchannel.wrapper',
@@ -35,8 +48,7 @@ closureBuilder.build({
3548
"(function() {%output%}).call(typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {})",
3649
language_out: 'ECMASCRIPT5',
3750
compilation_level: 'ADVANCED',
38-
// Avoid unsafe eval() calls (https://github.com/firebase/firebase-js-sdk/issues/798)
39-
define: 'goog.json.USE_NATIVE_JSON=true'
51+
define: closureDefines
4052
}
4153
}
4254
});
@@ -51,8 +63,7 @@ closureBuilder.build(
5163
closure: {
5264
language_out: 'ECMASCRIPT5',
5365
compilation_level: 'ADVANCED',
54-
// Avoid unsafe eval() calls (https://github.com/firebase/firebase-js-sdk/issues/798)
55-
define: 'goog.json.USE_NATIVE_JSON=true'
66+
define: closureDefines
5667
}
5768
}
5869
},

yarn.lock

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2946,10 +2946,10 @@ browserify@^14.5.0:
29462946
vm-browserify "~0.0.1"
29472947
xtend "^4.0.0"
29482948

2949-
browserify@^16.2.2:
2950-
version "16.2.2"
2951-
resolved "https://registry.npmjs.org/browserify/-/browserify-16.2.2.tgz#4b1f66ba0e54fa39dbc5aa4be9629142143d91b0"
2952-
integrity sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A==
2949+
browserify@^16.2.3:
2950+
version "16.2.3"
2951+
resolved "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b"
2952+
integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==
29532953
dependencies:
29542954
JSONStream "^1.0.3"
29552955
assert "^1.4.0"
@@ -3609,19 +3609,19 @@ cloneable-readable@^1.0.0:
36093609
process-nextick-args "^2.0.0"
36103610
readable-stream "^2.3.5"
36113611

3612-
3613-
version "2.3.0"
3614-
resolved "https://registry.npmjs.org/closure-builder/-/closure-builder-2.3.0.tgz#57cecbcdcee786ba39946f96f51bd7b72b0373c2"
3615-
integrity sha512-mdZDxmgCXaUCC5wmJdrZfDnFSuKaBluDdaD4jiukPoIlNsP/NjY6djBngMXNhxDNEKn4+eyKySc24W0T1Njg1w==
3612+
3613+
version "2.3.4"
3614+
resolved "https://registry.npmjs.org/closure-builder/-/closure-builder-2.3.4.tgz#78f3d65c368b57fe4dd7b9780096ca44b36ea5dd"
3615+
integrity sha512-rC7RKuQPZoMhDOMUQ7h+tfslfNAqEYrpZAeHw2tFD3v05LZhV2DPKVXATK+YnycVpI/846WuMDEHy5s3MHR0RA==
36163616
dependencies:
3617-
browserify "^16.2.2"
3617+
browserify "^16.2.3"
36183618
clean-css "^4.2.1"
36193619
decompress "^4.2.0"
36203620
dns-sync "^0.1.3"
3621-
follow-redirects "^1.5.8"
3621+
follow-redirects "^1.5.10"
36223622
fs-extra "^6.0.1"
36233623
glob "7.1.2"
3624-
google-closure-compiler "^20180805.0.0"
3624+
google-closure-compiler "^20181210.0.0"
36253625
loglevel "^1.6.1"
36263626
marked "^0.3.19"
36273627
mkdirp "0.5.1"
@@ -3630,7 +3630,7 @@ [email protected]:
36303630
rimraf "^2.6.2"
36313631
rollup "^0.58.2"
36323632
touch "3.1.0"
3633-
validator "^10.7.1"
3633+
validator "^10.9.0"
36343634

36353635
cmd-shim@^2.0.2:
36363636
version "2.0.2"
@@ -4416,14 +4416,14 @@ debug@2, [email protected], debug@^2, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@
44164416
dependencies:
44174417
ms "2.0.0"
44184418

4419-
[email protected], debug@=3.1.0, debug@^3.1.0, debug@~3.1.0:
4419+
[email protected], debug@^3.1.0, debug@~3.1.0:
44204420
version "3.1.0"
44214421
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
44224422
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
44234423
dependencies:
44244424
ms "2.0.0"
44254425

4426-
[email protected], debug@^3.0.0:
4426+
[email protected], debug@^3.0.0, debug@^3.2.6:
44274427
version "3.2.6"
44284428
resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
44294429
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -5981,12 +5981,12 @@ follow-redirects@^1.3.0:
59815981
dependencies:
59825982
debug "^3.1.0"
59835983

5984-
follow-redirects@^1.5.8:
5985-
version "1.5.8"
5986-
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1"
5987-
integrity sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==
5984+
follow-redirects@^1.5.10:
5985+
version "1.7.0"
5986+
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76"
5987+
integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==
59885988
dependencies:
5989-
debug "=3.1.0"
5989+
debug "^3.2.6"
59905990

59915991
for-in@^1.0.1, for-in@^1.0.2:
59925992
version "1.0.2"
@@ -6686,15 +6686,25 @@ google-auto-auth@^0.9.0:
66866686
google-auth-library "^1.3.1"
66876687
request "^2.79.0"
66886688

6689-
google-closure-compiler-linux@^20180805.0.0:
6690-
version "20180805.0.0"
6691-
resolved "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20180805.0.0.tgz#f6e0a7dca90a61181a7dea6f5748305645d9a1b7"
6692-
integrity sha512-Y53/dehGj5/HoAEnxoYFWLpLf8gHq8QaQSOw8ulnh6VkpHPdcAuhRqIVLcLeJ9rVW3xteOMQ2WFyRfFMayVZcA==
6689+
google-closure-compiler-java@^20181210.0.0:
6690+
version "20181210.0.0"
6691+
resolved "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20181210.0.0.tgz#de0a948aa1951d535c7ee50a529ff6cba00d6832"
6692+
integrity sha512-FMGzY+vp25DePolYNyVcXz8UI2PV/I3AYU3nuFexmHcKn5XiBVy4CqK7em6NpVbZdDXJYUF3GUv5A0x0gLvbfw==
6693+
6694+
google-closure-compiler-js@^20181210.0.0:
6695+
version "20181210.0.0"
6696+
resolved "https://registry.npmjs.org/google-closure-compiler-js/-/google-closure-compiler-js-20181210.0.0.tgz#806d7e4186828307074b6eb6392d529b40701795"
6697+
integrity sha512-gn+2hT4uQtYKD/jXJqGIXzPMln3/JD7R4caAKDPJm7adqqDvrCAw7qxAiK4Vz1rNec7hJXPXh9TeKQjzz03ZaQ==
6698+
6699+
google-closure-compiler-linux@^20181210.0.0:
6700+
version "20181210.0.0"
6701+
resolved "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20181210.0.0.tgz#3bbb44049685b258a095f0d0e5f63a2c58d3d629"
6702+
integrity sha512-Gp+yp+Vb6QWEhtYkePKxkspRlzX5dx6L46zUoHGWW7Henuk3ACYoUXuaHLQQ+tF0lmi2QAmFXEkvdnKVDIxR+Q==
66936703

6694-
google-closure-compiler-osx@^20180805.0.0:
6695-
version "20180805.0.0"
6696-
resolved "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20180805.0.0.tgz#71bc29b8dcd4882742709af01466ca1958e229c0"
6697-
integrity sha512-Zt558FPdkpcZulaT4uH7qNiO5wy3DT2Eaq+JPb4LjuS3KQSo8GSWx9caYWGZ1OdKULTv+v/flkHMtoHu5XP2bw==
6704+
google-closure-compiler-osx@^20181210.0.0:
6705+
version "20181210.0.0"
6706+
resolved "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20181210.0.0.tgz#9f15e37f8abdad809b3e0dd889579e8397042f6c"
6707+
integrity sha512-SYUakmEpq8BorJU/O5CfrC+ABYjXR0rTvBd3Khwd1sml9B2aKEiHArdHC5SCmBRZd3ccUhp/XyrVO6PoxHKeZA==
66986708

66996709
67006710
version "20180402.0.0"
@@ -6705,18 +6715,20 @@ [email protected]:
67056715
vinyl "^2.0.1"
67066716
vinyl-sourcemaps-apply "^0.2.0"
67076717

6708-
google-closure-compiler@^20180805.0.0:
6709-
version "20180805.0.0"
6710-
resolved "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20180805.0.0.tgz#9e2a9d0794a2033b276ab13c807a3671a7d93dbf"
6711-
integrity sha512-MV9JTTQDO0tYOAaJmqd3MMIjCLxHkhZcj7hN6gUJdjQV7wYmH2wqwj56teIK22o9pSJvhKg89F/WCguaAZhSUA==
6718+
google-closure-compiler@^20181210.0.0:
6719+
version "20181210.0.0"
6720+
resolved "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20181210.0.0.tgz#148bd30d5e33a83ab656fba8683d6a02063afda4"
6721+
integrity sha512-GCMLakdibnc+jpdNTvF3M/ET5i6I4zzxGKw67A4bQahxc0TPLXQdkVfhF3kwBSoPfK8xwgU5kA+KO0qvDZHKHw==
67126722
dependencies:
67136723
chalk "^1.0.0"
6724+
google-closure-compiler-java "^20181210.0.0"
6725+
google-closure-compiler-js "^20181210.0.0"
67146726
minimist "^1.2.0"
67156727
vinyl "^2.0.1"
67166728
vinyl-sourcemaps-apply "^0.2.0"
67176729
optionalDependencies:
6718-
google-closure-compiler-linux "^20180805.0.0"
6719-
google-closure-compiler-osx "^20180805.0.0"
6730+
google-closure-compiler-linux "^20181210.0.0"
6731+
google-closure-compiler-osx "^20181210.0.0"
67206732

67216733
67226734
version "20180405.0.0"
@@ -15043,10 +15055,10 @@ validate-npm-package-name@^3.0.0:
1504315055
dependencies:
1504415056
builtins "^1.0.3"
1504515057

15046-
validator@^10.7.1:
15047-
version "10.7.1"
15048-
resolved "https://registry.npmjs.org/validator/-/validator-10.7.1.tgz#dd4cc750c2134ce4a15a2acfc7b233669d659c5b"
15049-
integrity sha512-tbB5JrTczfeHKLw3PnFRzGFlF1xUAwSgXEDb66EuX1ffCirspYpDEZo3Vc9j38gPdL4JKrDc5UPFfgYiw1IWRQ==
15058+
validator@^10.9.0:
15059+
version "10.11.0"
15060+
resolved "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228"
15061+
integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==
1505015062

1505115063
value-or-function@^3.0.0:
1505215064
version "3.0.0"

0 commit comments

Comments
 (0)