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

45 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 { terser } from 'rollup-plugin-terser'
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',
sourcemap: true,
exports: 'default'
2019-05-27 07:52:34 +02:00
},
plugins: [
babel({
exclude: 'node_modules/**',
babelHelpers: 'bundled'
2019-05-27 07:52:34 +02:00
}),
peerDepsExternal(),
resolve({ modulesOnly: true }),
json(),
terser({
output: {
preamble: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
}
2019-05-27 07:52:34 +02:00
})
]
}
}
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 = ['Draft', '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