-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.js
76 lines (75 loc) · 1.6 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
import CleanCSS from 'clean-css';
import resolve from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import babel from '@rollup/plugin-babel';
import sass from 'rollup-plugin-sass';
import commonjs from '@rollup/plugin-commonjs';
import { terser } from 'rollup-plugin-terser';
import pkg from './package.json';
const isProduction = process.env.NODE_ENV === 'production';
const basePlugins = [
typescript(),
resolve(),
commonjs(),
babel({
exclude: [
'node_modules/**',
],
babelHelpers: 'bundled',
extensions: [
'.ts',
],
}),
sass({
insert: true,
processor: (css) => (isProduction ? new CleanCSS().minify(css).styles : css),
}),
];
const developmentPlugins = [
];
const productionPlugins = [
terser(),
];
const name = 'Waves';
const banner = `/*! ${pkg.name} v${pkg.version} | ${new Date().toGMTString()} | ${pkg.homepage} */`;
const proOutputOpt = {
name,
banner,
exports: 'default',
sourcemap: false,
};
export default {
input: './src/index.ts',
output: isProduction
? [
{
...proOutputOpt,
format: 'umd',
file: 'dist/index.js',
},
{
...proOutputOpt,
format: 'cjs',
file: 'dist/index.cjs.js',
},
{
...proOutputOpt,
format: 'es',
file: 'dist/index.esm.js',
},
]
: {
name,
format: 'umd',
file: 'node_modules/.waves/dist/index.js',
sourcemap: true,
},
plugins: [
...basePlugins,
...(
isProduction
? productionPlugins
: developmentPlugins
),
],
};