The fifth version of chriskrycho.com, built in Eleventy.
1// @ts-check
2
3import { defineConfig } from 'rollup';
4import typescript from '@rollup/plugin-typescript';
5import resolve from '@rollup/plugin-node-resolve';
6import terser from '@rollup/plugin-terser';
7import strip from '@rollup/plugin-strip';
8
9const production = !process.env.ROLLUP_WATCH;
10
11export default defineConfig({
12 input: 'scripts/main.ts',
13 output: [
14 {
15 sourcemap: true,
16 format: 'module',
17 file: './site/_assets/js/main.js',
18 },
19 {
20 sourcemap: true,
21 format: 'iife',
22 file: './site/_assets/js/main.old.js',
23 },
24 ],
25 plugins: [
26 // teach rollup how to handle typescript imports
27 typescript({
28 tsconfig: './scripts/tsconfig.json',
29 sourceMap: true,
30 }),
31 resolve({ browser: true }),
32 production &&
33 strip({
34 include: ['**/*.js', '**/*.ts'],
35 functions: ['assert', 'unreachable'],
36 }),
37 production &&
38 terser({
39 compress: {
40 unsafe: true,
41 passes: 2,
42 },
43 }),
44 ],
45});