diff --git a/packages/babel-helpers/package.json b/packages/babel-helpers/package.json index a2dc65599e43..2530dd28fa5d 100644 --- a/packages/babel-helpers/package.json +++ b/packages/babel-helpers/package.json @@ -20,7 +20,8 @@ "@babel/types": "workspace:^" }, "devDependencies": { - "@babel/helper-plugin-test-runner": "workspace:^" + "@babel/helper-plugin-test-runner": "workspace:^", + "terser": "^5.9.0" }, "engines": { "node": ">=6.9.0" diff --git a/packages/babel-helpers/scripts/generate-helpers.js b/packages/babel-helpers/scripts/generate-helpers.js index 9ced8a3fdc14..a2900c48e198 100644 --- a/packages/babel-helpers/scripts/generate-helpers.js +++ b/packages/babel-helpers/scripts/generate-helpers.js @@ -1,6 +1,7 @@ import fs from "fs"; import { join } from "path"; import { URL, fileURLToPath } from "url"; +import { minify } from "terser"; // eslint-disable-line const HELPERS_FOLDER = new URL("../src/helpers", import.meta.url); const IGNORED_FILES = new Set(["package.json"]); @@ -44,17 +45,15 @@ export default Object.freeze({ } const { minVersion } = minVersionMatch.groups; - // TODO: We can minify the helpers in production - const source = fileContents - // Remove comments - .replace(/\/\*[^]*?\*\/|\/\/.*/g, "") - // Remove multiple newlines - .replace(/\n{2,}/g, "\n"); + const source = await minify(fileContents, { + compress: false, + mangle: false, + }); output += `\ ${JSON.stringify(helperName)}: helper( ${JSON.stringify(minVersion)}, - ${JSON.stringify(source)}, + ${JSON.stringify(source.code)}, ), `; } diff --git a/yarn.lock b/yarn.lock index 2d99cf0c7778..144b24436802 100644 --- a/yarn.lock +++ b/yarn.lock @@ -971,6 +971,7 @@ __metadata: "@babel/template": "workspace:^" "@babel/traverse": "workspace:^" "@babel/types": "workspace:^" + terser: ^5.9.0 languageName: unknown linkType: soft @@ -14003,6 +14004,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"source-map-support@npm:~0.5.20": + version: 0.5.20 + resolution: "source-map-support@npm:0.5.20" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 43946aff452011960d16154304b11011e0185549493e65dd90da045959409fb2d266ba1c854fff3d5949f8e59382e3fcc7f7c5fa66136007a6750ad06c6c0baa + languageName: node + linkType: hard + "source-map-url@npm:^0.4.0": version: 0.4.0 resolution: "source-map-url@npm:0.4.0" @@ -14630,6 +14641,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"terser@npm:^5.9.0": + version: 5.9.0 + resolution: "terser@npm:5.9.0" + dependencies: + commander: ^2.20.0 + source-map: ~0.7.2 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: 11c1246b1991015a8881742878af779e3863fad42f626ffda957dbf28c94bf51e7994cffb9ffbec86ff3c23ab45ffa6d79d453c15e664306e35fc7b2c4eee5f4 + languageName: node + linkType: hard + "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0"