Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. /* eslint-disable global-require */
  2. /* eslint-env node */
  3.  
  4. const validEnv = ["development", "test", "production"]
  5. const currentEnv = process.env.NODE_ENV || "unknown"
  6. const isDevelopmentEnv = currentEnv === "development"
  7. const isProductionEnv = currentEnv === "production"
  8. const isTestEnv = currentEnv === "test"
  9.  
  10. if (!validEnv.includes(currentEnv)) {
  11. throw new Error(
  12. "Please specify a valid `NODE_ENV` or " +
  13. "`BABEL_ENV` environment variables. Valid values are \"development\", " +
  14. "\"test\", and \"production\". Instead, received: " +
  15. JSON.stringify(currentEnv) +
  16. "."
  17. )
  18. }
  19.  
  20. module.exports = (targets, extra_options={}) => {
  21. const generated_options = {
  22. babelrc: false,
  23. presets: [
  24. isTestEnv && [
  25. require("@babel/preset-env").default,
  26. {
  27. targets: {
  28. node: "current",
  29. },
  30. },
  31. ],
  32. (isProductionEnv || isDevelopmentEnv) && [
  33. require("@babel/preset-env").default,
  34. {
  35. modules: false,
  36. targets: targets,
  37.  
  38. forceAllTransforms: false,
  39. useBuiltIns: false,
  40. exclude: ["transform-typeof-symbol"],
  41.  
  42. // We are specifying mutiple browser target sets
  43. ignoreBrowserslistConfig: true,
  44. },
  45. ],
  46. "@babel/preset-flow",
  47. ].filter(Boolean),
  48. plugins: [
  49. // require("babel-plugin-macros"),
  50. require("@babel/plugin-syntax-dynamic-import").default,
  51. isTestEnv && require("babel-plugin-dynamic-import-node"),
  52. require("@babel/plugin-transform-exponentiation-operator").default,
  53. require("@babel/plugin-transform-destructuring").default,
  54. [
  55. require("@babel/plugin-proposal-class-properties").default,
  56. {
  57. loose: true,
  58. },
  59. ],
  60. [
  61. require("@babel/plugin-proposal-object-rest-spread").default,
  62. {
  63. useBuiltIns: true,
  64. },
  65. ],
  66. [
  67. require("@babel/plugin-transform-runtime").default,
  68. {
  69. helpers: false,
  70. regenerator: true,
  71. },
  72. ],
  73. [
  74. require("@babel/plugin-transform-regenerator").default,
  75. {
  76. async: false,
  77. },
  78. ],
  79. "syntax-trailing-function-commas",
  80. ].filter(Boolean),
  81. }
  82.  
  83. return {
  84. loader: "babel-loader",
  85. options: Object.assign({}, generated_options, extra_options),
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement