configs.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. entry: resolve('src/index.js'),
  15. dest: resolve('dist/vuex.js'),
  16. format: 'umd',
  17. env: 'development'
  18. },
  19. umdProd: {
  20. entry: resolve('src/index.js'),
  21. dest: resolve('dist/vuex.min.js'),
  22. format: 'umd',
  23. env: 'production'
  24. },
  25. commonjs: {
  26. entry: resolve('src/index.js'),
  27. dest: resolve('dist/vuex.common.js'),
  28. format: 'cjs'
  29. },
  30. esm: {
  31. entry: resolve('src/index.esm.js'),
  32. dest: resolve('dist/vuex.esm.js'),
  33. format: 'es'
  34. }
  35. }
  36. function genConfig (opts) {
  37. const config = {
  38. entry: opts.entry,
  39. dest: opts.dest,
  40. format: opts.format,
  41. banner,
  42. moduleName: 'Vuex',
  43. plugins: [
  44. replace({
  45. __VERSION__: version
  46. }),
  47. buble()
  48. ]
  49. }
  50. if (opts.env) {
  51. config.plugins.unshift(replace({
  52. 'process.env.NODE_ENV': JSON.stringify(opts.env)
  53. }))
  54. }
  55. return config
  56. }
  57. function mapValues (obj, fn) {
  58. const res = {}
  59. Object.keys(obj).forEach(key => {
  60. res[key] = fn(obj[key], key)
  61. })
  62. return res
  63. }
  64. module.exports = mapValues(configs, genConfig)