UNPKG

tiny-dream

Version:

A tiny Incremental DOM implementation for modern browsers.

94 lines (84 loc) 2.23 kB
const path = require('path') const babel = require('rollup-plugin-babel') const cjs = require('rollup-plugin-commonjs') const replace = require('rollup-plugin-replace') const node = require('rollup-plugin-node-resolve') const version = process.env.VERSION || require('../package.json').version const resolve = p => { const base = p.split('/')[0] return path.resolve(__dirname, '../', p) } const builds = { 'tiny-dream-umd': { entry: resolve('src/tiny-dream.js'), dest: resolve('dist/tiny-dream.js'), format: 'umd', env: 'development' }, 'tiny-dream-umd-production': { entry: resolve('src/tiny-dream.js'), dest: resolve('dist/tiny-dream.min.js'), format: 'umd', env: 'production' }, 'tiny-dream-cjs': { entry: resolve('src/tiny-dream.js'), dest: resolve('dist/tiny-dream.common.js'), format: 'cjs', env: 'development' }, 'tiny-dream-cjs-production': { entry: resolve('src/tiny-dream.js'), dest: resolve('dist/tiny-dream.common.min.js'), format: 'cjs', env: 'production' } } const banner = '/*!\n' + ' * Tiny Dream v' + version + '\n' + ' * (c) 2018 Yoshihide Shiono\n' + ' * Released under the MIT License.\n' + ' */' const onwarn = (warning) => { if (warning.code === 'THIS_IS_UNDEFINED' || warning.code === 'CIRCULAR_DEPENDENCY') { return } console.error(warning.message) } function genConfig (name) { const opts = builds[name] const config = { input: opts.entry, external: opts.external, onwarn: onwarn, plugins: [ babel({ exclude: 'node_modules/**', plugins: ['external-helpers'] }) ].concat(opts.plugins || []), output: { file: opts.dest, format: opts.format, banner: banner, name: opts.moduleName || 'TinyDream' } } if (opts.env) { config.plugins.push(replace({ 'process.env.NODE_ENV': JSON.stringify(opts.env) })) } Object.defineProperty(config, '_name', { enumerable: false, value: name }) return config } if (process.env.TARGET) { module.exports = genConfig(process.env.TARGET) } else { exports.getBuild = genConfig exports.getAllBuilds = () => Object.keys(builds).map(genConfig) }