Code cleanups
[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/ui/httpd/start.ts', 'src/charging-station/ChargingStationWorker.ts'],
13 output: {
14 dir: 'dist',
15 format: 'cjs',
16 exports: 'auto',
17 sourcemap: true,
18 preserveModules: true,
19 preserveModulesRoot: 'src',
20 ...(!isDevelopmentBuild && { plugins: [terser({ numWorkers: 2 })] }),
21 },
22 external: [
23 'basic-ftp',
24 'chalk',
25 'crypto',
26 'express',
27 'fs',
28 '@mikro-orm/core',
29 '@mikro-orm/reflection',
30 'mongodb',
31 'path',
32 'perf_hooks',
33 'poolifier',
34 'proper-lockfile',
35 'reflect-metadata',
36 'tar',
37 'url',
38 'uuid',
39 'ws',
40 'winston-daily-rotate-file',
41 'winston/lib/winston/transports',
42 'winston',
43 'worker_threads',
44 ],
45 plugins: [
46 json(),
47 ts({
48 tsconfig: 'tsconfig.json',
49 browserslist: false,
50 }),
51 isDevelopmentBuild && istanbul(),
52 del({
53 targets: ['dist/*', '!dist/assets', 'dist/assets/*.json', 'dist/assets/station-templates'],
54 }),
55 copy({
56 targets: [{ src: 'src/assets', dest: 'dist/' }],
57 }),
58 isDevelopmentBuild && analyze(),
59 ],
60 };