forked from radicle-dev/radicle-upstream
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.app.js
103 lines (90 loc) · 2.53 KB
/
rollup.app.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
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import commonjs from "@rollup/plugin-commonjs";
import livereload from "rollup-plugin-livereload";
import resolve from "@rollup/plugin-node-resolve";
import inject from "@rollup/plugin-inject";
import json from "@rollup/plugin-json";
import * as browserifyNodeBuiltins from "browserify/lib/builtins";
import svelte from "rollup-plugin-svelte";
import { terser } from "rollup-plugin-terser";
import typescript from "@rollup/plugin-typescript";
import autoPreprocess from "svelte-preprocess";
import css from "rollup-plugin-css-only";
const watch = !!process.env.ROLLUP_WATCH;
const release =
process.env.ROLLUP_RELEASE == "1" || process.env.ROLLUP_RELEASE == "true";
export default {
input: "ui/index.ts",
output: {
sourcemap: true,
format: "iife",
name: "app",
file: "public/bundle.js",
},
plugins: [
json(),
svelte({
compilerOptions: {
// enable run-time checks when not in production
dev: !release,
},
preprocess: autoPreprocess(),
}),
css({ output: "bundle.css" }),
resolve({
browser: true,
preferBuiltins: true,
dedupe: importee =>
importee === "svelte" || importee.startsWith("svelte/"),
}),
commonjs(),
inject({
modules: {
process: "_process",
Buffer: ["buffer", "Buffer"],
},
}),
{
name: "node-builtins",
resolveId(importee) {
if (importee === "util") {
// We need a more recent version than browserify provides
return { id: require.resolve("util/util.js") };
}
const builtinPath = browserifyNodeBuiltins[importee];
if (builtinPath) {
return { id: builtinPath };
}
},
},
typescript({
// See https://github.com/rollup/plugins/issues/272
noEmitOnError: watch,
}),
// Watch the `public` directory and refresh the
// browser on changes when not in production
watch && livereload("public"),
// If we're building for production (npm run build
// instead of npm run dev), minify
release && terser(),
],
watch: {
clearScreen: false,
},
// Skip certain warnings originated by third-party libraries
onwarn: function (warning) {
if (
warning.code === "THIS_IS_UNDEFINED" &&
warning.id.includes("node_modules/@ethersproject/")
) {
return;
}
if (
warning.code === "CIRCULAR_DEPENDENCY" &&
warning.importer.includes("node_modules")
) {
return;
}
// Pass on any other warnings
console.warn(warning.message);
},
};