Enable build minification
Summary: This shaves another ~6MB of the zipped build. Less than I would have thought, but I haven't looked at the alternative options so far at all. Reviewed By: nikoant Differential Revision: D21131772 fbshipit-source-id: 641515d6f36fdeeffa5be81d64c2c1043a9e4e34
This commit is contained in:
committed by
Facebook GitHub Bot
parent
2cf9eeb224
commit
9c18a98f89
@@ -180,6 +180,7 @@
|
||||
"jest-environment-jsdom-sixteen": "^1.0.3",
|
||||
"jest-fetch-mock": "^3.0.0",
|
||||
"metro": "^0.59.0",
|
||||
"metro-minify-terser": "^0.59.0",
|
||||
"metro-resolver": "^0.59.0",
|
||||
"p-filter": "^2.1.0",
|
||||
"p-map": "^4.0.0",
|
||||
|
||||
@@ -77,6 +77,13 @@ export default async function runBuild(
|
||||
transformer: {
|
||||
...baseConfig.transformer,
|
||||
babelTransformerPath: require.resolve('flipper-babel-transformer'),
|
||||
minifierPath: 'metro-minify-terser',
|
||||
minifierConfig: {
|
||||
// see: https://www.npmjs.com/package/terser
|
||||
keep_fnames: true,
|
||||
module: true,
|
||||
warnings: true,
|
||||
},
|
||||
},
|
||||
resolver: {
|
||||
...baseConfig.resolver,
|
||||
@@ -87,7 +94,7 @@ export default async function runBuild(
|
||||
});
|
||||
await Metro.runBuild(config, {
|
||||
dev,
|
||||
minify: false,
|
||||
minify: !dev,
|
||||
resetCache: !dev,
|
||||
sourceMap: true,
|
||||
entry,
|
||||
|
||||
@@ -54,6 +54,16 @@ export async function generatePluginEntryPoints() {
|
||||
console.log('✅ Generated plugin entry points.');
|
||||
}
|
||||
|
||||
const minifierConfig = {
|
||||
minifierPath: 'metro-minify-terser',
|
||||
minifierConfig: {
|
||||
// see: https://www.npmjs.com/package/terser
|
||||
keep_fnames: true,
|
||||
module: true,
|
||||
warnings: true,
|
||||
},
|
||||
};
|
||||
|
||||
async function compile(
|
||||
buildFolder: string,
|
||||
projectRoot: string,
|
||||
@@ -71,6 +81,7 @@ async function compile(
|
||||
babelTransformationsDir,
|
||||
'transform-app',
|
||||
),
|
||||
...minifierConfig,
|
||||
},
|
||||
resolver: {
|
||||
resolverMainFields: ['flipperBundlerEntry', 'module', 'main'],
|
||||
@@ -80,7 +91,7 @@ async function compile(
|
||||
},
|
||||
{
|
||||
dev,
|
||||
minify: false,
|
||||
minify: !dev,
|
||||
resetCache: !dev,
|
||||
sourceMap: true,
|
||||
entry,
|
||||
@@ -145,6 +156,7 @@ export async function compileMain() {
|
||||
babelTransformationsDir,
|
||||
'transform-main',
|
||||
),
|
||||
...minifierConfig,
|
||||
},
|
||||
resolver: {
|
||||
sourceExts: ['tsx', 'ts', 'js'],
|
||||
@@ -157,7 +169,7 @@ export async function compileMain() {
|
||||
entry: path.join(staticDir, 'main.ts'),
|
||||
out,
|
||||
dev,
|
||||
minify: false,
|
||||
minify: !dev,
|
||||
sourceMap: true,
|
||||
resetCache: !dev,
|
||||
});
|
||||
|
||||
@@ -3765,7 +3765,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
commander@^2.11.0, commander@^2.3.0:
|
||||
commander@^2.11.0, commander@^2.20.0, commander@^2.3.0:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
@@ -8331,6 +8331,13 @@ metro-inspector-proxy@0.59.0:
|
||||
ws "^1.1.5"
|
||||
yargs "^14.2.0"
|
||||
|
||||
metro-minify-terser@^0.59.0:
|
||||
version "0.59.0"
|
||||
resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.59.0.tgz#57dfd539e3de03b59643f05a63af336deade127c"
|
||||
integrity sha512-FSIPTL6+0S1Zyqs/wvypyfM6zxkKTXUHBqodoZMICwKnK0Q+/HeaXOagwY9AXf8LP3NvgGIaM3/qCGIVJnnYkQ==
|
||||
dependencies:
|
||||
terser "^4.6.3"
|
||||
|
||||
metro-minify-uglify@0.59.0:
|
||||
version "0.59.0"
|
||||
resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz#6491876308d878742f7b894d7fca4af356886dd5"
|
||||
@@ -10964,6 +10971,14 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@^0.5.9
|
||||
buffer-from "^1.0.0"
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map-support@~0.5.12:
|
||||
version "0.5.17"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.17.tgz#29fe1b3c98b9dbd5064ada89052ee8ff070cb46c"
|
||||
integrity sha512-bwdKOBZ5L0gFRh4KOxNap/J/MpvX9Yxsq9lFDx65s3o7F/NiHy7JRaGIS8MwW6tZPAq9UXE207Il0cfcb5yu/Q==
|
||||
dependencies:
|
||||
buffer-from "^1.0.0"
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map-url@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
|
||||
@@ -11420,6 +11435,15 @@ terminal-link@^2.0.0:
|
||||
ansi-escapes "^4.2.1"
|
||||
supports-hyperlinks "^2.0.0"
|
||||
|
||||
terser@^4.6.3:
|
||||
version "4.6.11"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f"
|
||||
integrity sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.6.1"
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
test-exclude@^5.2.3:
|
||||
version "5.2.3"
|
||||
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
|
||||
|
||||
Reference in New Issue
Block a user