stonex
/
rollup.config.js
100 строк · 2.1 Кб
1const packageJson = require('./package.json')2const resolve = require('rollup-plugin-node-resolve')3const replace = require('rollup-plugin-replace')4const terser = require('rollup-plugin-terser').terser5const typescript = require('rollup-plugin-typescript')6// const commonjs = require('rollup-plugin-commonjs')
7
8const deps = [9...Object.keys(packageJson.dependencies || {}),10...Object.keys(packageJson.peerDependencies || {}),11]
12
13const inputOutputConfig = (outputFile, outputFormat, commonOutput = {}) => ({14input: 'src/index.ts',15output: {16file: `${outputFile}`,17format: outputFormat,18...commonOutput,19},20})21
22const productionBuildPlugins = [23replace({24'process.env.NODE_ENV': JSON.stringify('production'),25}),26terser({27compress: {28pure_getters: true,29unsafe: true,30unsafe_comps: true,31warnings: false,32},33}),34]
35
36module.exports = [37// Common JS builds38{39...inputOutputConfig('lib/stonex.js', 'cjs'),40external: deps,41plugins: [typescript()],42},43{44...inputOutputConfig('lib/stonex.min.js', 'cjs'),45external: deps,46plugins: [typescript(), ...productionBuildPlugins],47},48
49// EcmaScript builds50{51...inputOutputConfig('es/stonex.js', 'es'),52external: deps,53plugins: [typescript()],54},55{56...inputOutputConfig('es/stonex.mjs', 'es'),57external: deps,58plugins: [59resolve({60jsnext: true,61}),62typescript(),63...productionBuildPlugins,64],65},66
67// UMD builds68{69...inputOutputConfig('dist/stonex.js', 'umd', {70name: 'Stonex',71}),72external: deps,73plugins: [74resolve({75jsnext: true,76}),77typescript({78exclude: 'node_modules/**',79}),80replace({81'process.env.NODE_ENV': JSON.stringify('development'),82}),83],84},85{86...inputOutputConfig('dist/stonex.min.js', 'umd', {87name: 'Stonex',88}),89external: deps,90plugins: [91resolve({92jsnext: true,93}),94typescript({95exclude: 'node_modules/**',96}),97...productionBuildPlugins,98],99},100]
101