perf: lazy load preset-env plugins (#13076)
This commit is contained in:
parent
a647b9ea6b
commit
3e174e9cbd
@ -179,7 +179,11 @@ module.exports = function (api) {
|
||||
assumptions: parserAssumptions,
|
||||
},
|
||||
convertESM && {
|
||||
test: ["./packages/babel-cli", "./packages/babel-core"].map(normalize),
|
||||
test: [
|
||||
"./packages/babel-cli",
|
||||
"./packages/babel-core",
|
||||
"./packages/babel-preset-env/src/available-plugins.js",
|
||||
].map(normalize),
|
||||
plugins: [
|
||||
// Explicitly use the lazy version of CommonJS modules.
|
||||
["@babel/transform-modules-commonjs", { lazy: true }],
|
||||
|
||||
@ -68,68 +68,73 @@ import bugfixSafariForShadowing from "@babel/preset-modules/lib/plugins/transfor
|
||||
import bugfixV8SpreadParametersInOptionalChaining from "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
|
||||
|
||||
export default {
|
||||
"bugfix/transform-async-arrows-in-class": bugfixAsyncArrowsInClass,
|
||||
"bugfix/transform-edge-default-parameters": bugfixEdgeDefaultParameters,
|
||||
"bugfix/transform-edge-function-name": bugfixEdgeFunctionName,
|
||||
"bugfix/transform-safari-block-shadowing": bugfixSafariBlockShadowing,
|
||||
"bugfix/transform-safari-for-shadowing": bugfixSafariForShadowing,
|
||||
"bugfix/transform-tagged-template-caching": bugfixTaggedTemplateCaching,
|
||||
"bugfix/transform-v8-spread-parameters-in-optional-chaining": bugfixV8SpreadParametersInOptionalChaining,
|
||||
"proposal-async-generator-functions": proposalAsyncGeneratorFunctions,
|
||||
"proposal-class-properties": proposalClassProperties,
|
||||
"proposal-dynamic-import": proposalDynamicImport,
|
||||
"proposal-export-namespace-from": proposalExportNamespaceFrom,
|
||||
"proposal-json-strings": proposalJsonStrings,
|
||||
"proposal-logical-assignment-operators": proposalLogicalAssignmentOperators,
|
||||
"proposal-nullish-coalescing-operator": proposalNullishCoalescingOperator,
|
||||
"proposal-numeric-separator": proposalNumericSeparator,
|
||||
"proposal-object-rest-spread": proposalObjectRestSpread,
|
||||
"proposal-optional-catch-binding": proposalOptionalCatchBinding,
|
||||
"proposal-optional-chaining": proposalOptionalChaining,
|
||||
"proposal-private-methods": proposalPrivateMethods,
|
||||
"proposal-unicode-property-regex": proposalUnicodePropertyRegex,
|
||||
"syntax-async-generators": syntaxAsyncGenerators,
|
||||
"syntax-class-properties": syntaxClassProperties,
|
||||
"syntax-dynamic-import": syntaxDynamicImport,
|
||||
"syntax-export-namespace-from": syntaxExportNamespaceFrom,
|
||||
"syntax-json-strings": syntaxJsonStrings,
|
||||
"syntax-logical-assignment-operators": syntaxLogicalAssignmentOperators,
|
||||
"syntax-nullish-coalescing-operator": syntaxNullishCoalescingOperator,
|
||||
"syntax-numeric-separator": syntaxNumericSeparator,
|
||||
"syntax-object-rest-spread": syntaxObjectRestSpread,
|
||||
"syntax-optional-catch-binding": syntaxOptionalCatchBinding,
|
||||
"syntax-optional-chaining": syntaxOptionalChaining,
|
||||
"syntax-top-level-await": syntaxTopLevelAwait,
|
||||
"transform-arrow-functions": transformArrowFunctions,
|
||||
"transform-async-to-generator": transformAsyncToGenerator,
|
||||
"transform-block-scoped-functions": transformBlockScopedFunctions,
|
||||
"transform-block-scoping": transformBlockScoping,
|
||||
"transform-classes": transformClasses,
|
||||
"transform-computed-properties": transformComputedProperties,
|
||||
"transform-destructuring": transformDestructuring,
|
||||
"transform-dotall-regex": transformDotallRegex,
|
||||
"transform-duplicate-keys": transformDuplicateKeys,
|
||||
"transform-exponentiation-operator": transformExponentialOperator,
|
||||
"transform-for-of": transformForOf,
|
||||
"transform-function-name": transformFunctionName,
|
||||
"transform-literals": transformLiterals,
|
||||
"transform-member-expression-literals": transformMemberExpressionLiterals,
|
||||
"transform-modules-amd": transformModulesAmd,
|
||||
"transform-modules-commonjs": transformModulesCommonjs,
|
||||
"transform-modules-systemjs": transformModulesSystemjs,
|
||||
"transform-modules-umd": transformModulesUmd,
|
||||
"transform-named-capturing-groups-regex": transformNamedCapturingGroupsRegex,
|
||||
"transform-new-target": transformNewTarget,
|
||||
"transform-object-super": transformObjectSuper,
|
||||
"transform-parameters": transformParameters,
|
||||
"transform-property-literals": transformPropertyLiterals,
|
||||
"transform-regenerator": transformRegenerator,
|
||||
"transform-reserved-words": transformReservedWords,
|
||||
"transform-shorthand-properties": transformShorthandProperties,
|
||||
"transform-spread": transformSpread,
|
||||
"transform-sticky-regex": transformStickyRegex,
|
||||
"transform-template-literals": transformTemplateLiterals,
|
||||
"transform-typeof-symbol": transformTypeofSymbol,
|
||||
"transform-unicode-escapes": transformUnicodeEscapes,
|
||||
"transform-unicode-regex": transformUnicodeRegex,
|
||||
"bugfix/transform-async-arrows-in-class": () => bugfixAsyncArrowsInClass,
|
||||
"bugfix/transform-edge-default-parameters": () => bugfixEdgeDefaultParameters,
|
||||
"bugfix/transform-edge-function-name": () => bugfixEdgeFunctionName,
|
||||
"bugfix/transform-safari-block-shadowing": () => bugfixSafariBlockShadowing,
|
||||
"bugfix/transform-safari-for-shadowing": () => bugfixSafariForShadowing,
|
||||
"bugfix/transform-tagged-template-caching": () => bugfixTaggedTemplateCaching,
|
||||
"bugfix/transform-v8-spread-parameters-in-optional-chaining": () =>
|
||||
bugfixV8SpreadParametersInOptionalChaining,
|
||||
"proposal-async-generator-functions": () => proposalAsyncGeneratorFunctions,
|
||||
"proposal-class-properties": () => proposalClassProperties,
|
||||
"proposal-dynamic-import": () => proposalDynamicImport,
|
||||
"proposal-export-namespace-from": () => proposalExportNamespaceFrom,
|
||||
"proposal-json-strings": () => proposalJsonStrings,
|
||||
"proposal-logical-assignment-operators": () =>
|
||||
proposalLogicalAssignmentOperators,
|
||||
"proposal-nullish-coalescing-operator": () =>
|
||||
proposalNullishCoalescingOperator,
|
||||
"proposal-numeric-separator": () => proposalNumericSeparator,
|
||||
"proposal-object-rest-spread": () => proposalObjectRestSpread,
|
||||
"proposal-optional-catch-binding": () => proposalOptionalCatchBinding,
|
||||
"proposal-optional-chaining": () => proposalOptionalChaining,
|
||||
"proposal-private-methods": () => proposalPrivateMethods,
|
||||
"proposal-unicode-property-regex": () => proposalUnicodePropertyRegex,
|
||||
"syntax-async-generators": () => syntaxAsyncGenerators,
|
||||
"syntax-class-properties": () => syntaxClassProperties,
|
||||
"syntax-dynamic-import": () => syntaxDynamicImport,
|
||||
"syntax-export-namespace-from": () => syntaxExportNamespaceFrom,
|
||||
"syntax-json-strings": () => syntaxJsonStrings,
|
||||
"syntax-logical-assignment-operators": () => syntaxLogicalAssignmentOperators,
|
||||
"syntax-nullish-coalescing-operator": () => syntaxNullishCoalescingOperator,
|
||||
"syntax-numeric-separator": () => syntaxNumericSeparator,
|
||||
"syntax-object-rest-spread": () => syntaxObjectRestSpread,
|
||||
"syntax-optional-catch-binding": () => syntaxOptionalCatchBinding,
|
||||
"syntax-optional-chaining": () => syntaxOptionalChaining,
|
||||
"syntax-top-level-await": () => syntaxTopLevelAwait,
|
||||
"transform-arrow-functions": () => transformArrowFunctions,
|
||||
"transform-async-to-generator": () => transformAsyncToGenerator,
|
||||
"transform-block-scoped-functions": () => transformBlockScopedFunctions,
|
||||
"transform-block-scoping": () => transformBlockScoping,
|
||||
"transform-classes": () => transformClasses,
|
||||
"transform-computed-properties": () => transformComputedProperties,
|
||||
"transform-destructuring": () => transformDestructuring,
|
||||
"transform-dotall-regex": () => transformDotallRegex,
|
||||
"transform-duplicate-keys": () => transformDuplicateKeys,
|
||||
"transform-exponentiation-operator": () => transformExponentialOperator,
|
||||
"transform-for-of": () => transformForOf,
|
||||
"transform-function-name": () => transformFunctionName,
|
||||
"transform-literals": () => transformLiterals,
|
||||
"transform-member-expression-literals": () =>
|
||||
transformMemberExpressionLiterals,
|
||||
"transform-modules-amd": () => transformModulesAmd,
|
||||
"transform-modules-commonjs": () => transformModulesCommonjs,
|
||||
"transform-modules-systemjs": () => transformModulesSystemjs,
|
||||
"transform-modules-umd": () => transformModulesUmd,
|
||||
"transform-named-capturing-groups-regex": () =>
|
||||
transformNamedCapturingGroupsRegex,
|
||||
"transform-new-target": () => transformNewTarget,
|
||||
"transform-object-super": () => transformObjectSuper,
|
||||
"transform-parameters": () => transformParameters,
|
||||
"transform-property-literals": () => transformPropertyLiterals,
|
||||
"transform-regenerator": () => transformRegenerator,
|
||||
"transform-reserved-words": () => transformReservedWords,
|
||||
"transform-shorthand-properties": () => transformShorthandProperties,
|
||||
"transform-spread": () => transformSpread,
|
||||
"transform-sticky-regex": () => transformStickyRegex,
|
||||
"transform-template-literals": () => transformTemplateLiterals,
|
||||
"transform-typeof-symbol": () => transformTypeofSymbol,
|
||||
"transform-unicode-escapes": () => transformUnicodeEscapes,
|
||||
"transform-unicode-regex": () => transformUnicodeRegex,
|
||||
};
|
||||
|
||||
@ -81,7 +81,7 @@ function getPluginList(proposals: boolean, bugfixes: boolean) {
|
||||
}
|
||||
|
||||
const getPlugin = (pluginName: string) => {
|
||||
const plugin = availablePlugins[pluginName];
|
||||
const plugin = availablePlugins[pluginName]();
|
||||
|
||||
if (!plugin) {
|
||||
throw new Error(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user