1 | /*
|
2 | * Copyright (c) 2021 Snowplow Analytics Ltd, 2010 Anthon Pang
|
3 | * All rights reserved.
|
4 | *
|
5 | * Redistribution and use in source and binary forms, with or without
|
6 | * modification, are permitted provided that the following conditions are met:
|
7 | *
|
8 | * 1. Redistributions of source code must retain the above copyright notice, this
|
9 | * list of conditions and the following disclaimer.
|
10 | *
|
11 | * 2. Redistributions in binary form must reproduce the above copyright notice,
|
12 | * this list of conditions and the following disclaimer in the documentation
|
13 | * and/or other materials provided with the distribution.
|
14 | *
|
15 | * 3. Neither the name of the copyright holder nor the names of its
|
16 | * contributors may be used to endorse or promote products derived from
|
17 | * this software without specific prior written permission.
|
18 | *
|
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
22 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
23 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
25 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
26 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
27 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29 | */
|
30 |
|
31 | import { nodeResolve } from '@rollup/plugin-node-resolve';
|
32 | import ts from '@wessberg/rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files
|
33 | import commonjs from '@rollup/plugin-commonjs';
|
34 | import json from '@rollup/plugin-json';
|
35 | import { banner } from '../../banner';
|
36 | import compiler from '@ampproject/rollup-plugin-closure-compiler';
|
37 | import { terser } from 'rollup-plugin-terser';
|
38 | import cleanup from 'rollup-plugin-cleanup';
|
39 | import sizes from 'rollup-plugin-sizes';
|
40 | import filesize from 'rollup-plugin-filesize';
|
41 | import alias from '@rollup/plugin-alias';
|
42 | import pkg from './package.json';
|
43 |
|
44 | const plugins = [
|
45 | json(),
|
46 | nodeResolve({ browser: true }),
|
47 | commonjs(),
|
48 | ts({ tsconfig: './tsconfig.prod.json' }),
|
49 | compiler(),
|
50 | terser(),
|
51 | cleanup({ comments: 'none' }),
|
52 | banner(),
|
53 | sizes(),
|
54 | filesize({ showMinifiedSize: false, showBeforeSizes: 'build' }),
|
55 | ];
|
56 |
|
57 | export default [
|
58 | {
|
59 | input: './src/index.ts',
|
60 | plugins: plugins,
|
61 | treeshake: { moduleSideEffects: ['jstimezonedetect'] },
|
62 | output: [{ file: pkg.browser, format: 'iife', sourcemap: true }],
|
63 | },
|
64 | {
|
65 | input: './src/index.ts',
|
66 | plugins: [
|
67 | alias({
|
68 | entries: [{ find: '../tracker.config', replacement: '../tracker.lite.config' }],
|
69 | }),
|
70 | ...plugins,
|
71 | ],
|
72 | treeshake: { moduleSideEffects: ['jstimezonedetect'] },
|
73 | output: [{ file: pkg.browser.replace('.js', '.lite.js'), format: 'iife', sourcemap: true }],
|
74 | },
|
75 | ];
|