This repository has been archived by the owner on Jun 8, 2021. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 48
/
rollup.config.js
110 lines (100 loc) · 2.2 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
const pkg = require('./package')
const basePlugins = require('./rollup.plugins.js')
const pluginBabel = require('rollup-plugin-babel')({
ignore: [/node_modules\/(!emittery).*/],
plugins: ['@babel/plugin-transform-regenerator', '@babel/transform-regenerator'],
presets: [
[
'@babel/preset-env',
{
modules: false,
targets: {
browsers: ['last 4 versions', 'safari >= 7', 'ie 11']
}
}
]
]
})
const pluginBabelEs = require('rollup-plugin-babel')({
ignore: [/node_modules\/(!emittery).*/],
plugins: ['@babel/transform-object-assign'],
presets: [
[
'@babel/preset-env',
{
modules: false,
targets: {
browsers: ['last 4 versions', 'safari >= 7', 'ie 11']
}
}
]
]
})
/**
* UMD build
*
* @method umdBuild
*
* @return {Object}
*/
function umdBuild () {
const pluginReplace = require('@rollup/plugin-replace')({
'process.env.NODE_ENV': JSON.stringify('development')
})
return {
input: 'index.js',
output: {
file: pkg.browser,
name: 'adonis.Ws',
format: 'umd'
},
plugins: [pluginReplace].concat(basePlugins).concat([pluginBabel])
}
}
/**
* Umd build for production
*
* @method umdProductionBuild
*
* @return {Object}
*/
function umdProductionBuild () {
const pluginReplace = require('@rollup/plugin-replace')({
'process.env.NODE_ENV': JSON.stringify('production')
})
const pluginUglify = require('rollup-plugin-uglify')()
return {
input: 'index.js',
output: {
file: `${pkg.browser.replace(/\.js$/, '.min.js')}`,
name: 'adonis.Ws',
format: 'umd'
},
plugins: [pluginReplace].concat(basePlugins).concat([pluginBabel, pluginUglify])
}
}
/**
* Es build
*
* @method esBuild
*
* @return {Object}
*/
function esBuild () {
return {
input: 'index.js',
output: {
file: pkg.module,
format: 'es'
},
plugins: basePlugins.concat([pluginBabelEs])
}
}
const build = process.argv.slice(3)[0]
if (build === '--umd') {
module.exports = umdBuild()
} else if (build === '--umd-production') {
module.exports = umdProductionBuild()
} else if (build === '--esm') {
module.exports = esBuild()
}