-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathplugins.js
More file actions
55 lines (47 loc) · 1.65 KB
/
plugins.js
File metadata and controls
55 lines (47 loc) · 1.65 KB
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
import json from '@rollup/plugin-json'
import nodeResolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import replace from '@rollup/plugin-replace'
import nodePolyfills from 'rollup-plugin-polyfill-node'
import babel from '@rollup/plugin-babel'
import { terser } from './packages/terser.js'
import { sizeme } from './packages/sizeme.js'
import { servor } from './packages/servor.js'
import { cdn } from './packages/cdn.js'
import { babelConfig } from './babel.js'
const plugins = (command, pkg, options) => {
const { extensions, presets, plugins } = babelConfig(command, pkg, options)
const { sourcemap, minify, fallback, port, usets } = options
const babelDefaults = { babelrc: false, configFile: false, compact: false }
return [
json(),
nodePolyfills({ sourceMap: sourcemap }),
nodeResolve({
mainFields: ['module', 'jsnext:main', 'browser', 'main'],
extensions,
}),
commonjs({ extensions, include: /\/node_modules\// }),
usets && require('@rollup/plugin-typescript')({
typescript: require("ttypescript")
}),
babel({
...babelDefaults,
exclude: 'node_modules/**',
extensions,
presets,
plugins,
sourceMap: sourcemap,
babelHelpers: 'bundled',
inputSourceMap: sourcemap,
}),
cdn(),
replace({ preventAssignment: true, values: { 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) } }),
command !== 'start' && minify && terser({ sourceMap: sourcemap }),
command !== 'start' && sizeme(),
command === 'start' && servor({ fallback, port }),
].filter(Boolean)
}
const dtsPlugins = () => {
return [require('rollup-plugin-dts').default(), sizeme()]
}
export { plugins, dtsPlugins }