-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
60 lines (57 loc) · 1.61 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
import babel from '@rollup/plugin-babel';
import commonjs from '@rollup/plugin-commonjs';
import nodeResolve from '@rollup/plugin-node-resolve';
import replace from '@rollup/plugin-replace';
import typescriptPlugin from '@rollup/plugin-typescript';
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
import metablock from 'rollup-plugin-userscript-metablock';
import typescript from 'typescript';
const fs = require('fs');
const pkg = require('./package.json');
fs.mkdir('dist/', { recursive: true }, () => null);
export default {
input: 'src/index.js',
output: {
file: 'dist/bundle.user.js',
format: 'cjs',
name: 'rollupUserScript',
banner: () =>
'\n/*\n' +
fs.readFileSync('./LICENSE', 'utf8') +
'*/\n\n/* globals React, ReactDOM */',
sourcemap: true,
globals: {
'styled-components': 'styled',
react: 'React',
'react-dom': 'ReactDOM',
},
},
plugins: [
peerDepsExternal(),
replace({
'process.env.NODE_ENV': JSON.stringify('production'),
ENVIRONMENT: JSON.stringify('production'),
preventAssignment: true,
}),
nodeResolve({ extensions: ['.js', '.ts', '.tsx'] }),
typescriptPlugin({ typescript }),
commonjs({
include: ['node_modules/**'],
exclude: ['node_modules/process-es6/**'],
}),
babel({
babelHelpers: 'bundled',
}),
metablock({
file: './meta.json',
override: {
name: pkg.name,
version: pkg.version,
description: pkg.description,
homepage: pkg.homepage,
author: pkg.author,
license: pkg.license,
},
}),
],
};