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-environment-jsdom-sixteen": "^1.0.3",
|
||||||
"jest-fetch-mock": "^3.0.0",
|
"jest-fetch-mock": "^3.0.0",
|
||||||
"metro": "^0.59.0",
|
"metro": "^0.59.0",
|
||||||
|
"metro-minify-terser": "^0.59.0",
|
||||||
"metro-resolver": "^0.59.0",
|
"metro-resolver": "^0.59.0",
|
||||||
"p-filter": "^2.1.0",
|
"p-filter": "^2.1.0",
|
||||||
"p-map": "^4.0.0",
|
"p-map": "^4.0.0",
|
||||||
|
|||||||
@@ -77,6 +77,13 @@ export default async function runBuild(
|
|||||||
transformer: {
|
transformer: {
|
||||||
...baseConfig.transformer,
|
...baseConfig.transformer,
|
||||||
babelTransformerPath: require.resolve('flipper-babel-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: {
|
resolver: {
|
||||||
...baseConfig.resolver,
|
...baseConfig.resolver,
|
||||||
@@ -87,7 +94,7 @@ export default async function runBuild(
|
|||||||
});
|
});
|
||||||
await Metro.runBuild(config, {
|
await Metro.runBuild(config, {
|
||||||
dev,
|
dev,
|
||||||
minify: false,
|
minify: !dev,
|
||||||
resetCache: !dev,
|
resetCache: !dev,
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
entry,
|
entry,
|
||||||
|
|||||||
@@ -54,6 +54,16 @@ export async function generatePluginEntryPoints() {
|
|||||||
console.log('✅ Generated plugin entry points.');
|
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(
|
async function compile(
|
||||||
buildFolder: string,
|
buildFolder: string,
|
||||||
projectRoot: string,
|
projectRoot: string,
|
||||||
@@ -71,6 +81,7 @@ async function compile(
|
|||||||
babelTransformationsDir,
|
babelTransformationsDir,
|
||||||
'transform-app',
|
'transform-app',
|
||||||
),
|
),
|
||||||
|
...minifierConfig,
|
||||||
},
|
},
|
||||||
resolver: {
|
resolver: {
|
||||||
resolverMainFields: ['flipperBundlerEntry', 'module', 'main'],
|
resolverMainFields: ['flipperBundlerEntry', 'module', 'main'],
|
||||||
@@ -80,7 +91,7 @@ async function compile(
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
dev,
|
dev,
|
||||||
minify: false,
|
minify: !dev,
|
||||||
resetCache: !dev,
|
resetCache: !dev,
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
entry,
|
entry,
|
||||||
@@ -145,6 +156,7 @@ export async function compileMain() {
|
|||||||
babelTransformationsDir,
|
babelTransformationsDir,
|
||||||
'transform-main',
|
'transform-main',
|
||||||
),
|
),
|
||||||
|
...minifierConfig,
|
||||||
},
|
},
|
||||||
resolver: {
|
resolver: {
|
||||||
sourceExts: ['tsx', 'ts', 'js'],
|
sourceExts: ['tsx', 'ts', 'js'],
|
||||||
@@ -157,7 +169,7 @@ export async function compileMain() {
|
|||||||
entry: path.join(staticDir, 'main.ts'),
|
entry: path.join(staticDir, 'main.ts'),
|
||||||
out,
|
out,
|
||||||
dev,
|
dev,
|
||||||
minify: false,
|
minify: !dev,
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
resetCache: !dev,
|
resetCache: !dev,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3765,7 +3765,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
|
|||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
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"
|
version "2.20.3"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||||
@@ -8331,6 +8331,13 @@ metro-inspector-proxy@0.59.0:
|
|||||||
ws "^1.1.5"
|
ws "^1.1.5"
|
||||||
yargs "^14.2.0"
|
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:
|
metro-minify-uglify@0.59.0:
|
||||||
version "0.59.0"
|
version "0.59.0"
|
||||||
resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz#6491876308d878742f7b894d7fca4af356886dd5"
|
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"
|
buffer-from "^1.0.0"
|
||||||
source-map "^0.6.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:
|
source-map-url@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
|
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"
|
ansi-escapes "^4.2.1"
|
||||||
supports-hyperlinks "^2.0.0"
|
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:
|
test-exclude@^5.2.3:
|
||||||
version "5.2.3"
|
version "5.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
|
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
|
||||||
|
|||||||
Reference in New Issue
Block a user