configs.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const path = require('path')
  2. const buble = require('rollup-plugin-buble')
  3. const replace = require('rollup-plugin-replace')
  4. const version = process.env.VERSION || require('../package.json').version
  5. const banner =
  6. `/**
  7. * vuex v${version}
  8. * (c) ${new Date().getFullYear()} Evan You
  9. * @license MIT
  10. */`
  11. const resolve = _path => path.resolve(__dirname, '../', _path)
  12. const configs = {
  13. umdDev: {
  14. input: resolve('src/index.js'),
  15. file: resolve('dist/vuex.js'),
  16. format: 'umd',
  17. env: 'development'
  18. },
  19. umdProd: {
  20. input: resolve('src/index.js'),
  21. file: resolve('dist/vuex.min.js'),
  22. format: 'umd',
  23. env: 'production'
  24. },
  25. commonjs: {
  26. input: resolve('src/index.js'),
  27. file: resolve('dist/vuex.common.js'),
  28. format: 'cjs'
  29. },
  30. esm: {
  31. input: resolve('src/index.esm.js'),
  32. file: resolve('dist/vuex.esm.js'),
  33. format: 'es'
  34. }
  35. }
  36. function genConfig (opts) {
  37. const config = {
  38. input: {
  39. input: opts.input,
  40. plugins: [
  41. replace({
  42. __VERSION__: version
  43. }),
  44. buble()
  45. ]
  46. },
  47. output: {
  48. banner,
  49. file: opts.file,
  50. format: opts.format,
  51. name: 'Vuex'
  52. }
  53. }
  54. if (opts.env) {
  55. config.input.plugins.unshift(replace({
  56. 'process.env.NODE_ENV': JSON.stringify(opts.env)
  57. }))
  58. }
  59. return config
  60. }
  61. function mapValues (obj, fn) {
  62. const res = {}
  63. Object.keys(obj).forEach(key => {
  64. res[key] = fn(obj[key], key)
  65. })
  66. return res
  67. }
  68. module.exports = mapValues(configs, genConfig)