config.js 1.53 KB
const path = require('path')
const buble = require('rollup-plugin-buble')
const replace = require('rollup-plugin-replace')
const npmResolve = require('rollup-plugin-node-resolve')
const common = require('rollup-plugin-commonjs')
const copy = require('rollup-plugin-copy')
const version = process.env.VERSION || require('../../package.json').version
const banner =
  `/**
 * we-cropper v${version}
 * (c) ${new Date().getFullYear()} dlhandsome
 * @license MIT
 */`

const resolve = _path => path.resolve(__dirname, '../../', _path)

const configs = {
  umdDev: {
    input: resolve('src/main.js'),
    file: resolve('dist/we-cropper.js'),
    format: 'umd',
    env: 'development'
  },
  umdProd: {
    input: resolve('src/main.js'),
    file: resolve('dist/we-cropper.min.js'),
    format: 'umd',
    env: 'production'
  }
}

function genConfig (name) {
  const opts = configs[name]
  const config = {
    input: opts.input,
    plugins: [
      npmResolve(),
      common(),
      replace({
        __VERSION__: JSON.stringify(version)
      }),
      buble(),
      copy({
        'dist/': 'example/we-cropper/',
        verbose: true
      })
    ],
    output: {
      banner,
      file: opts.file,
      format: opts.format,
      name: 'WeCropper'
    }
  }
  
  return config
}

function mapValues (obj, fn) {
  const res = {}
  Object.keys(obj).forEach(key => {
    res[key] = fn(obj[key], key)
  })
  return res
}

if (process.env.TARGET) {
  module.exports = genConfig(process.env.TARGET)
} else {
  module.exports = Object.keys(configs).map(genConfig)
}