-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrollup.config.js
91 lines (89 loc) · 2.35 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
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
import commonjs from '@rollup/plugin-commonjs';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import cleanup from 'rollup-plugin-cleanup';
import copy from 'rollup-plugin-copy';
import styles from 'rollup-plugin-styles';
import { visualizer } from 'rollup-plugin-visualizer';
const buildPath = 'dist'
export default [
{
input: 'src/extension.ts',
treeshake: {
moduleSideEffects: 'no-external',
},
output: {
file: `${buildPath}/extension.js`,
format: 'es',
exports: 'default',
globals: {},
assetFileNames: '[name][extname]',
interop: 'esModule'
},
external: [
'gi://Clutter',
'gi://Gio',
'gi://GLib',
'gi://GObject',
'gi://St',
'resource:///org/gnome/shell/ui/panelMenu.js',
'resource:///org/gnome/shell/ui/popupMenu.js',
'resource:///org/gnome/shell/ui/main.js',
'resource:///org/gnome/shell/extensions/extension.js'
],
plugins: [
commonjs(),
nodeResolve({
preferBuiltins: false,
}),
typescript({
tsconfig: './tsconfig.json',
}),
// styles({
// mode: ['extract', 'stylesheet.css'],
// }),
copy({
targets: [
{ src: './resources/icons', dest: `${buildPath}` },
{ src: './resources/metadata.json', dest: `${buildPath}` },
{ src: './resources/stylesheet.css', dest: `${buildPath}` },
// { src: './resources/images', dest: `${buildPath}` },
// { src: './resources/schemas', dest: `${buildPath}` },
// { src: './resources/dbus', dest: `${buildPath}` },
],
}),
cleanup({
comments: 'none',
}),
visualizer(),
],
},
// {
// input: 'src/prefs/prefs.ts',
// output: {
// file: `${buildPath}/prefs.js`,
// format: 'iife',
// exports: 'default',
// name: 'prefs',
// banner: prefsBanner,
// footer: prefsFooter,
// globals,
// },
// treeshake: {
// moduleSideEffects: 'no-external',
// },
// external,
// plugins: [
// commonjs(),
// nodeResolve({
// preferBuiltins: false,
// }),
// typescript({
// tsconfig: './tsconfig.json',
// }),
// cleanup({
// comments: 'none',
// }),
// ],
// },
]