diff --git a/config/babel.config.js b/config/babel.config.js index 97ec7301..6c6d5953 100644 --- a/config/babel.config.js +++ b/config/babel.config.js @@ -1,3 +1,6 @@ +const fs = require('fs'); +const path = require('path'); + /* * babel.config.js * @@ -11,6 +14,15 @@ module.exports = function(api) { api.cache(() => env + es5Standalone); + // Load an array of plugins from enact property in package.json + const packageFile = path.join(process.cwd(), 'package.json'); + const packageContent = fs.existsSync(packageFile) ? JSON.parse(fs.readFileSync(packageFile)) : null; + + const babelrcPlugins = + packageContent && packageContent.enact && packageContent.enact.babel_plugins + ? packageContent.enact.babel_plugins + : []; + return { presets: [ [ @@ -50,6 +62,9 @@ module.exports = function(api) { ['@babel/preset-typescript'] ], plugins: [ + // Add external plugins using spread operator + ...babelrcPlugins, + // Stage 0 // '@babel/plugin-proposal-function-bind',