-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
rollup.config.js
43 lines (39 loc) · 1.19 KB
/
rollup.config.js
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
const path = require("path");
import typescript from "@rollup/plugin-typescript";
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import nodeResolve from "@rollup/plugin-node-resolve";
import { terser } from "rollup-plugin-terser";
import manifest from "./build-scripts/rollup-plugins/manifest";
const production = process.env.NODE_ENV === "production";
const terserOptions = (latestBuild) => ({
safari10: !latestBuild,
ecma: latestBuild ? undefined : 5,
output: { comments: false },
});
const plugins = (latestBuild) =>
[
nodeResolve({}),
commonjs(),
json(),
typescript(),
production && terser(terserOptions(latestBuild)),
manifest(),
].filter(Boolean);
// Each entrypoint a different build to avoid code reuse across builds
export default [
"./src/entrypoints/my-index.ts",
"./src/entrypoints/my-redirect.ts",
"./src/entrypoints/my-change-url.ts",
"./src/entrypoints/my-create-link.ts",
].map((entrypoint) => ({
input: {
[path.parse(entrypoint).name]: entrypoint,
},
output: {
dir: "dist/js",
format: "iife",
entryFileNames: production ? "[name]-[hash].js" : "[name].js",
},
plugins: plugins(true),
}));