-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathrollup.config.js
57 lines (53 loc) · 1.46 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
const svelte = require("rollup-plugin-svelte");
const commonjs = require("rollup-plugin-commonjs");
const resolve = require("rollup-plugin-node-resolve");
const serve = require("rollup-plugin-serve");
const html = require("rollup-plugin-bundle-html");
const typescript = require("rollup-plugin-typescript2");
const tscompile = require("typescript");
const { terser } = require("rollup-plugin-terser");
const livereload = require("rollup-plugin-livereload");
const isProd = process.env.NODE_ENV === "production";
const isDev = process.env.NODE_ENV === "development";
const isTest = process.env.NODE_ENV === "test";
const plugins = [
commonjs({ include: "node_modules/**" }),
typescript({ typescript: tscompile }),
svelte({
dev: isProd ? false : true,
extensions: [".svelte"],
preprocess: require("./svelte.config.js").preprocess,
css: isTest ? false : css => css.write("build/css/style.css")
}),
resolve({ browser: true }),
html({
template: "src/index.html",
dest: "build",
filename: "index.html"
})
];
if (isDev) {
plugins.push(
serve({
open: false,
openPage: "/index.html",
historyApiFallback: "/index.html",
contentBase: ["./build"]
}),
livereload({
watch: "build"
})
);
} else if (isProd) {
plugins.push(terser({ sourcemap: true }));
}
module.exports = {
input: "src/index.ts",
output: {
sourcemap: true,
name: "main",
file: "build/js/main.js",
format: "iife"
},
plugins
};