Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* eslint-disable global-require */
- /* eslint-env node */
- const validEnv = ["development", "test", "production"]
- const currentEnv = process.env.NODE_ENV || "unknown"
- const isDevelopmentEnv = currentEnv === "development"
- const isProductionEnv = currentEnv === "production"
- const isTestEnv = currentEnv === "test"
- if (!validEnv.includes(currentEnv)) {
- throw new Error(
- "Please specify a valid `NODE_ENV` or " +
- "`BABEL_ENV` environment variables. Valid values are \"development\", " +
- "\"test\", and \"production\". Instead, received: " +
- JSON.stringify(currentEnv) +
- "."
- )
- }
- module.exports = (targets, extra_options={}) => {
- const generated_options = {
- babelrc: false,
- presets: [
- isTestEnv && [
- require("@babel/preset-env").default,
- {
- targets: {
- node: "current",
- },
- },
- ],
- (isProductionEnv || isDevelopmentEnv) && [
- require("@babel/preset-env").default,
- {
- modules: false,
- targets: targets,
- forceAllTransforms: false,
- useBuiltIns: false,
- exclude: ["transform-typeof-symbol"],
- // We are specifying mutiple browser target sets
- ignoreBrowserslistConfig: true,
- },
- ],
- "@babel/preset-flow",
- ].filter(Boolean),
- plugins: [
- // require("babel-plugin-macros"),
- require("@babel/plugin-syntax-dynamic-import").default,
- isTestEnv && require("babel-plugin-dynamic-import-node"),
- require("@babel/plugin-transform-exponentiation-operator").default,
- require("@babel/plugin-transform-destructuring").default,
- [
- require("@babel/plugin-proposal-class-properties").default,
- {
- loose: true,
- },
- ],
- [
- require("@babel/plugin-proposal-object-rest-spread").default,
- {
- useBuiltIns: true,
- },
- ],
- [
- require("@babel/plugin-transform-runtime").default,
- {
- helpers: false,
- regenerator: true,
- },
- ],
- [
- require("@babel/plugin-transform-regenerator").default,
- {
- async: false,
- },
- ],
- "syntax-trailing-function-commas",
- ].filter(Boolean),
- }
- return {
- loader: "babel-loader",
- options: Object.assign({}, generated_options, extra_options),
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement