1
0
Fork 0
freesewing/packages/components/rollup.config.js

44 lines
1.4 KiB
JavaScript
Raw Normal View History

import babel from 'rollup-plugin-babel'
import resolve from 'rollup-plugin-node-resolve'
import json from 'rollup-plugin-json'
import minify from 'rollup-plugin-babel-minify'
import peerDepsExternal from 'rollup-plugin-peer-deps-external'
import { name, version, description, author, license } from './package.json'
import components from './src/index.js'
2019-04-16 19:18:42 +02:00
2019-05-27 07:52:34 +02:00
const createConfig = (component, module) => {
return {
input: `./src/${component + '/'}index.js`,
2019-05-27 07:52:34 +02:00
output: {
file: `./${component}/index` + (module ? '.mjs' : '.js'),
format: module ? 'es' : 'cjs',
2019-05-27 07:52:34 +02:00
sourcemap: true
},
plugins: [
peerDepsExternal(),
resolve({ modulesOnly: true }),
json(),
babel({
exclude: 'node_modules/**',
plugins: ['@babel/plugin-proposal-object-rest-spread']
2019-05-27 07:52:34 +02:00
}),
minify({
comments: false,
sourceMap: true,
banner: `/**\n * ${name}/${component} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
})
]
}
}
2019-05-27 07:52:34 +02:00
const config = []
// When developing, you can use this to only rebuild the components you're working on
let dev = false
let only = ['Workbench']
2019-05-27 07:52:34 +02:00
for (let component of components) {
if (!dev || only.indexOf(component) !== -1) config.push(createConfig(component, false))
// Webpack doesn't handle .mjs very well
//config.push(createConfig(component, true));
2019-05-27 07:52:34 +02:00
}
export default config