idraw/scripts/rollup.config.js

79 lines
1.9 KiB
JavaScript
Raw Normal View History

2021-05-23 12:16:15 +00:00
const path = require('path');
const typescript = require('rollup-plugin-typescript2');
const { nodeResolve } = require('@rollup/plugin-node-resolve');
const { packages } = require('./config');
const dtsPlugin = require('./util/dts-plugin');
const stylePlugin = require('./util/style-plugin');
const resolveFile = function(names = []) {
return path.join(__dirname, '..', 'packages', ...names)
}
const modules = [];
2021-05-30 14:07:41 +00:00
const external = [ '@idraw/types', '@idraw/util', '@idraw/board', '@idraw/core' ];
2021-05-23 12:16:15 +00:00
for(let i = 0; i < packages.length; i++) {
const pkg = packages[i];
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.global.js']),
name: pkg.globalName,
format: 'iife',
plugins: []
});
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.cjs.js']),
name: pkg.globalName,
format: 'cjs',
exports: 'default',
plugins: [dtsPlugin(pkg.dirName),],
external,
});
modules.push({
input: resolveFile([pkg.dirName, 'src', 'index.ts']),
output: resolveFile([pkg.dirName, 'dist', 'index.es.js']),
name: pkg.globalName,
esModule: true,
format: 'es',
external,
plugins: [dtsPlugin(pkg.dirName),]
});
}
function createConfigItem(params) {
const { input, output, name, format, plugins = [], esModule, exports} = params;
return {
input: input,
output: {
file:output,
format,
name: name,
esModule: esModule === true,
2021-06-03 10:05:06 +00:00
// sourcemap: true,
2021-05-23 12:16:15 +00:00
exports
},
plugins: [
...[stylePlugin(), nodeResolve(), typescript()],
...plugins,
],
};
}
function createDevConfig(mods) {
const configs = mods.map((mod) => {
return createConfigItem(mod);
});
return configs;
}
module.exports = createDevConfig(modules);