3900559c0e016c2a482f2a7b56a5acc450402b5e
[e-mobility-charging-stations-simulator.git] / rollup.config.js
1 import analyze from 'rollup-plugin-analyzer';
2 import copy from 'rollup-plugin-copy';
3 import del from 'rollup-plugin-delete';
4 import istanbul from 'rollup-plugin-istanbul';
5 import json from '@rollup/plugin-json';
6 import { terser } from 'rollup-plugin-terser';
7 import ts from 'rollup-plugin-ts';
8
9 const isDevelopmentBuild = process.env.BUILD === 'development';
10
11 export default {
12 input: ['src/start.ts', 'src/charging-station/ChargingStationWorker.ts'],
13 output:
14 {
15 dir: 'dist',
16 format: 'cjs',
17 exports: 'auto',
18 sourcemap: true,
19 preserveModules: true,
20 preserveModulesRoot: 'src',
21 ...!isDevelopmentBuild && { plugins: [terser({ numWorkers: 2 })] }
22 },
23 external: ['basic-ftp', 'chalk', 'crypto', 'fs', '@mikro-orm/core', '@mikro-orm/reflection', 'mongodb', 'path', 'perf_hooks', 'poolifier', 'proper-lockfile', 'reflect-metadata', 'tar', 'url', 'uuid', 'ws', 'winston-daily-rotate-file', 'winston/lib/winston/transports', 'winston', 'worker_threads'],
24 plugins: [
25 json(),
26 ts({
27 tsconfig: 'tsconfig.json',
28 browserslist: false
29 }),
30 isDevelopmentBuild && istanbul(),
31 del({
32 targets: 'dist/*'
33 }),
34 copy({
35 targets: [
36 { src: 'src/assets', dest: 'dist/' }
37 ]
38 }),
39 isDevelopmentBuild && analyze()
40 ]
41 };