diff --git a/experimental/babel-preset-env/src/available-plugins.js b/experimental/babel-preset-env/src/available-plugins.js new file mode 100644 index 0000000000..c1de638197 --- /dev/null +++ b/experimental/babel-preset-env/src/available-plugins.js @@ -0,0 +1,29 @@ +export const availablePlugins = { + "check-es2015-constants": require("babel-plugin-check-es2015-constants"), + "syntax-trailing-function-commas": require("babel-plugin-syntax-trailing-function-commas"), + "transform-async-to-generator": require("babel-plugin-transform-async-to-generator"), + "transform-es2015-arrow-functions": require("babel-plugin-transform-es2015-arrow-functions"), + "transform-es2015-block-scoped-functions": require("babel-plugin-transform-es2015-block-scoped-functions"), + "transform-es2015-block-scoping": require("babel-plugin-transform-es2015-block-scoping"), + "transform-es2015-classes": require("babel-plugin-transform-es2015-classes"), + "transform-es2015-computed-properties": require("babel-plugin-transform-es2015-computed-properties"), + "transform-es2015-destructuring": require("babel-plugin-transform-es2015-destructuring"), + "transform-es2015-duplicate-keys": require("babel-plugin-transform-es2015-duplicate-keys"), + "transform-es2015-for-of": require("babel-plugin-transform-es2015-for-of"), + "transform-es2015-function-name": require("babel-plugin-transform-es2015-function-name"), + "transform-es2015-literals": require("babel-plugin-transform-es2015-literals"), + "transform-es2015-modules-amd": require("babel-plugin-transform-es2015-modules-amd"), + "transform-es2015-modules-commonjs": require("babel-plugin-transform-es2015-modules-commonjs"), + "transform-es2015-modules-systemjs": require("babel-plugin-transform-es2015-modules-systemjs"), + "transform-es2015-modules-umd": require("babel-plugin-transform-es2015-modules-umd"), + "transform-es2015-object-super": require("babel-plugin-transform-es2015-object-super"), + "transform-es2015-parameters": require("babel-plugin-transform-es2015-parameters"), + "transform-es2015-shorthand-properties": require("babel-plugin-transform-es2015-shorthand-properties"), + "transform-es2015-spread": require("babel-plugin-transform-es2015-spread"), + "transform-es2015-sticky-regex": require("babel-plugin-transform-es2015-sticky-regex"), + "transform-es2015-template-literals": require("babel-plugin-transform-es2015-template-literals"), + "transform-es2015-typeof-symbol": require("babel-plugin-transform-es2015-typeof-symbol"), + "transform-es2015-unicode-regex": require("babel-plugin-transform-es2015-unicode-regex"), + "transform-exponentiation-operator": require("babel-plugin-transform-exponentiation-operator"), + "transform-regenerator": require("babel-plugin-transform-regenerator"), +}; diff --git a/experimental/babel-preset-env/src/index.js b/experimental/babel-preset-env/src/index.js index f9662ea770..4d7ce55896 100644 --- a/experimental/babel-preset-env/src/index.js +++ b/experimental/babel-preset-env/src/index.js @@ -10,6 +10,7 @@ import pluginList from "../data/plugins.json"; import useBuiltInsEntryPlugin from "./use-built-ins-entry-plugin"; import addUsedBuiltInsPlugin from "./use-built-ins-plugin"; import getTargets from "./targets-parser"; +import availablePlugins from "./available-plugins"; import { prettifyTargets, semverify } from "./utils"; import type { Plugin, Targets } from "./types"; @@ -163,16 +164,13 @@ export default function buildPreset( const plugins = []; if (modules !== false && moduleTransformations[modules]) { - plugins.push([ - require(`babel-plugin-${moduleTransformations[modules]}`), - { loose }, - ]); + plugins.push([availablePlugins[moduleTransformations[modules]], { loose }]); } // NOTE: not giving spec here yet to avoid compatibility issues when // babel-plugin-transform-es2015-modules-commonjs gets its spec mode transformations.forEach(pluginName => - plugins.push([require(`babel-plugin-${pluginName}`), { spec, loose }]), + plugins.push([availablePlugins[pluginName], { spec, loose }]), ); const regenerator = transformations.has("transform-regenerator");