UNPKG

@hackoregon/civic-babel-presets

Version:

Unified babel presets for civic

65 lines (58 loc) 1.56 kB
const env = process.env.BABEL_ENV || process.env.NODE_ENV; const preset = { presets: [ [ require.resolve("babel-preset-env"), { modules: false } ], require.resolve("babel-preset-react") ], plugins: [ require.resolve("babel-plugin-transform-class-properties"), [ require.resolve("babel-plugin-transform-object-rest-spread"), { useBuiltIns: true } ], require.resolve("babel-plugin-syntax-dynamic-import"), require.resolve("babel-plugin-transform-runtime") ] }; if ( env !== "development" && env !== "test" && env !== "production" && env !== "esm" ) { throw new Error( `${"Using `civic-babel-presets` requires that you specify `NODE_ENV` or " + '`BABEL_ENV` environment variables. Valid values are "development", ' + '"test", and "production". Instead, received: '}${JSON.stringify(env)}.` ); } if (env === "development" || env === "test") { preset.plugins.push.apply(preset.plugins, [ // Adds component stack to warning messages require.resolve("babel-plugin-transform-react-jsx-source") ]); } if (env === "test") { preset.plugins.push.apply(preset.plugins, [ require.resolve("babel-plugin-dynamic-import-node"), [ require.resolve("babel-plugin-transform-es2015-modules-commonjs"), { loose: true } ] ]); } if (env === "production") { preset.plugins.push.apply(preset.plugins, [ require.resolve("babel-plugin-transform-react-remove-prop-types") ]); } module.exports = preset;