-
Notifications
You must be signed in to change notification settings - Fork 9
/
rollup.config.js
112 lines (99 loc) · 4.1 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import { terser } from "rollup-plugin-terser";
import babel from 'rollup-plugin-babel';
let plugins = [
babel({
exclude: 'node_modules/**',
}),
resolve({
// use "module" field for ES6 module if possible
module: true, // Default: true
// use "jsnext:main" if possible
// – see https://github.com/rollup/rollup/wiki/jsnext:main
jsnext: false, // Default: false
// use "main" field or index.js, even if it's not an ES6 module
// (needs to be converted from CommonJS to ES6
// – see https://github.com/rollup/rollup-plugin-commonjs
main: true, // Default: true
// some package.json files have a `browser` field which
// specifies alternative files to load for people bundling
// for the browser. If that's you, use this option, otherwise
// pkg.browser will be ignored
browser: true, // Default: false
// not all files you want to resolve are .js files
extensions: [ '.mjs', '.js', '.jsx', '.json' ], // Default: [ '.mjs', '.js', '.json', '.node' ]
// whether to prefer built-in modules (e.g. `fs`, `path`) or
// local ones with the same names
preferBuiltins: false, // Default: true
// Lock the module search in this path (like a chroot). Module defined
// outside this path will be marked as external
// jail: '/my/jail/path', // Default: '/'
// Set to an array of strings and/or regexps to lock the module search
// to modules that match at least one entry. Modules not matching any
// entry will be marked as external
only: [
/^fp-rosetree$/,
/^json-patch-es6/,
/^graph-adt/,
], // Default: null
// If true, inspect resolved files to check that they are
// ES2015 modules
modulesOnly: false, // Default: false
// Any additional options that should be passed through
// to node-resolve
// customResolveOptions: {
// moduleDirectory: 'mode_modules'
// }
}),
commonjs({
include: ['node_modules/**', "node_modules/deep-equal/**"],
// // non-CommonJS modules will be ignored, but you can also
// // specifically include/exclude files
// include: 'node_modules/fast-json-patch/lib/duplex.js', // Default: undefined
// // exclude: [ 'node_modules/foo/**', 'node_modules/bar/**' ], // Default: undefined
// // these values can also be regular expressions
// // include: /node_modules/
// // exclude: [ /node_modules\/[a-f].*/], mined
//
// // search for files other than .js files (must already
// // be transpiled by a previous plugin!)
// // extensions: [ '.js', '.coffee' ], // Default: [ '.js' ]
//
// // if true then uses of `global` won't be dealt with by this plugin
// ignoreGlobal: false, // Default: false
//
// // if false then skip sourceMap generation for CommonJS modules
// // sourceMap: false, // Default: true
//
// // explicitly specify unresolvable named exports
// // (see below for more details)
// namedExports: { './module.js': ['foo', 'bar' ] }, // Default: undefined
//
// // sometimes you have to leave require statements
// // unconverted. Pass an array containing the IDs
// // or a `id => boolean` function. Only use this
// // option if you know what you're doing!
// ignore: [ 'conditional-runtime-dependency' ]
}),
];
let suffix="";
if (process.env.BUILD == "production") {
plugins = plugins.concat(terser())
suffix = ".min";
}
const exp = {
input: 'src/index.js',
output: [{
file: `dist/kingly.umd${suffix}.js`,
format: 'umd',
name: 'Kingly',
},{
file: `dist/kingly.es${suffix}.js`,
format: 'esm',
name: 'Kingly',
},
],
plugins
};
export default exp