-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrollup.config.cjs
71 lines (68 loc) · 1.85 KB
/
rollup.config.cjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const {nodeResolve} = require('@rollup/plugin-node-resolve');
const bundleSize = require('rollup-plugin-bundle-size');
const commonjs = require('@rollup/plugin-commonjs');
const json = require('@rollup/plugin-json');
const terser = require('@rollup/plugin-terser');
const typescript = require('@rollup/plugin-typescript');
const pkg = require('./package.json');
const {defineConfig} = require('rollup');
const banner = '/*! ' + pkg.name + ' v' + pkg.version + ' */';
const iifeGlobals = {
'@hebcal/core': 'hebcal',
'@hebcal/core/dist/esm/locale': 'hebcal',
'@hebcal/core/dist/esm/holidays': 'hebcal',
'@hebcal/core/dist/esm/sedra': 'hebcal',
'@hebcal/core/dist/esm/event': 'hebcal',
'@hebcal/core/dist/esm/ParshaEvent': 'hebcal',
};
// Override tsconfig.json, which includes ./size-demo.
const tsOptions = {rootDir: './src'};
module.exports = defineConfig([
{
input: ['src/index.ts', 'src/csv.ts'],
output: [
{
dir: 'dist/esm',
format: 'es',
preserveModules: true,
preserveModulesRoot: 'src',
name: pkg.name,
banner,
},
],
external: [/node_modules/, /@hebcal/],
plugins: [
typescript({...tsOptions, outDir: 'dist/esm'}),
json({compact: true, preferConst: true}),
],
},
{
input: 'src/index.ts',
output: [
{
file: 'dist/bundle.js',
format: 'iife',
name: 'hebcal__leyning',
globals: iifeGlobals,
indent: false,
banner,
},
{
file: 'dist/bundle.min.js',
format: 'iife',
name: 'hebcal__leyning',
globals: iifeGlobals,
plugins: [terser()],
banner,
},
],
external: [/@hebcal\/core/],
plugins: [
typescript(tsOptions),
json({compact: true, preferConst: true}),
nodeResolve(),
commonjs(),
bundleSize(),
],
},
]);