UNPKG

iportal

Version:

web-portal

82 lines (77 loc) 1.8 kB
const sh = require('./util').sh const rollup = require('rollup').rollup const rollupConfig = require('./rollup.config') const typescript = require('rollup-plugin-typescript2') const merge = require('lodash.merge') function rollupEach (options) { options.forEach(async options => { const bundle = await rollup(genRollupConfig(options.input, options.output, options.config)) await bundle.write(options.output) }) } function genRollupConfig (input, output, config) { const currentRollupConfig = merge({}, rollupConfig, { input, output }) currentRollupConfig.plugins[0] = typescript({ verbosity: 1, tsconfigOverride: { compilerOptions: Object.assign({ declaration: false }, config) } }) return currentRollupConfig } async function build () { await sh('npm run clean && npx rollup -c scripts/rollup.config.js') rollupEach([ { output: { name: 'ioing', file: 'dist/index.common.js', format: 'cjs' }, config: { module: 'esnext' } }, { output: { name: 'ioing', file: 'dist/index.mjs', format: 'es' }, config: { module: 'esnext', target: 'es2016' } }, { input: './src/Runaway/index.ts', output: { name: 'ioing', file: 'dist/runaway.common.js', format: 'cjs' }, config: { module: 'esnext' } }, { input: './src/Runaway/index.ts', output: { name: 'ioing', file: 'dist/runaway.mjs', format: 'es' }, config: { module: 'esnext', target: 'es2016' } } ]) await sh(`npx uglify-js dist/index.js \ -c hoist_funs,hoist_vars \ -m \ -o dist/index.min.js`) } build()