diff --git a/packages/babel-preset-env/src/normalize-options.js b/packages/babel-preset-env/src/normalize-options.js index ca6deba60a4f..413467bfb537 100644 --- a/packages/babel-preset-env/src/normalize-options.js +++ b/packages/babel-preset-env/src/normalize-options.js @@ -5,6 +5,7 @@ import invariant from "invariant"; import { coerce, SemVer } from "semver"; import corejs2Polyfills from "@babel/compat-data/corejs2-built-ins"; import pluginsList from "@babel/compat-data/plugins"; +import availablePlugins from "./available-plugins"; import moduleTransformations from "./module-transformations"; import { TopLevelOptions, ModulesOption, UseBuiltInsOption } from "./options"; import { defaultWebIncludes } from "./polyfills/corejs2/get-platform-specific-default"; @@ -31,7 +32,9 @@ const validateTopLevelOptions = (options: Options) => { } }; -const allPluginsList = Object.keys(pluginsList); +const allPluginsList = Object.keys(pluginsList).filter( + plugin => !!availablePlugins[plugin], +); // NOTE: Since module plugins are handled seperatly compared to other plugins (via the "modules" option) it // should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env