1+ const fs = require ( 'fs' ) ;
2+ const path = require ( 'path' ) ;
3+ const babel = require ( 'rollup-plugin-babel' ) ;
4+ const commonjs = require ( 'rollup-plugin-commonjs' ) ;
5+ import { uglify } from 'rollup-plugin-uglify' ;
6+ import uglifyES from 'rollup-plugin-uglify-es' ;
7+
8+ const license = require ( 'rollup-plugin-license' ) ;
9+ const { name} = require ( './package.json' ) ;
10+
11+ const base = __dirname ;
12+ const src = path . resolve ( base , 'src' ) ;
13+ const dist = path . resolve ( base , 'dist' ) ;
14+
15+ // Ensure dist directory exists
16+ if ( ! fs . existsSync ( dist ) ) {
17+ fs . mkdirSync ( dist )
18+ }
19+
20+ function defaultPlugins ( ) {
21+ return [
22+ commonjs ( { extensions : [ '.js' , '.json' ] } ) ,
23+ babel ( {
24+ plugins : [ 'external-helpers' ]
25+ } ) ,
26+ uglify ( {
27+ sourcemap : true ,
28+ // numWorkers: 1,
29+ } ) ,
30+ license ( {
31+ // sourceMap: true,
32+ // cwd: '.', // Default is process.cwd()
33+
34+ banner : `<%= pkg.name %> v<%= pkg.version %>
35+ (c) <%= moment().format('YYYY') %> <%= pkg.author %>
36+ Released under the <%= pkg.license %> License.` ,
37+ } ) ,
38+ ]
39+ }
40+
41+ let plugins = defaultPlugins ( ) ;
42+ plugins . splice ( 2 , 1 ) ;
43+
44+ let productionPlugins = defaultPlugins ( ) ;
45+ let productionESPlugins = defaultPlugins ( ) ;
46+ productionESPlugins [ 2 ] = uglifyES ( ) ;
47+
48+ let configs = [
49+ {
50+ input : path . resolve ( src , 'plugin.common.js' ) ,
51+ // external: Object.keys(dependencies),
52+ plugins,
53+ output : [
54+ {
55+ format : 'cjs' ,
56+ exports : 'named' ,
57+ name : 'OverlayScrollbars' ,
58+ file : path . resolve ( dist , name + '.common.js' ) ,
59+ sourcemap : true
60+ } ,
61+ {
62+ format : 'umd' ,
63+ exports : 'named' ,
64+ name : 'OverlayScrollbars' ,
65+ file : path . resolve ( dist , name + '.js' ) ,
66+ sourcemap : true
67+ }
68+ ] ,
69+ } ,
70+ {
71+ input : path . resolve ( src , 'plugin.js' ) ,
72+ plugins,
73+ output : {
74+ format : 'es' ,
75+ file : path . resolve ( dist , name + '.esm.js' ) ,
76+ sourcemap : true
77+ } ,
78+ } ,
79+ {
80+ input : path . resolve ( src , 'OverlayScrollbars.js' ) ,
81+ plugins,
82+ output : {
83+ format : 'umd' ,
84+ name : 'OverlayScrollbars' ,
85+ file : path . resolve ( base , 'overlay-scrollbars.js' ) ,
86+ // sourcemap: true
87+ } ,
88+ }
89+ ] ;
90+
91+ if ( process . env . NODE_ENV === 'production' ) {
92+ let newConfigs = [
93+ {
94+ input : path . resolve ( src , 'plugin.common.js' ) ,
95+ plugins : productionPlugins ,
96+ output : {
97+ format : 'cjs' ,
98+ exports : 'named' ,
99+ name : 'OverlayScrollbars' ,
100+ file : path . resolve ( dist , name + '.common.min.js' ) ,
101+ sourcemap : true
102+ } ,
103+ } ,
104+ {
105+ input : path . resolve ( src , 'plugin.common.js' ) ,
106+ plugins : productionPlugins ,
107+ output : {
108+ format : 'umd' ,
109+ exports : 'named' ,
110+ name : 'OverlayScrollbars' ,
111+ file : path . resolve ( dist , name + '.min.js' ) ,
112+ sourcemap : true
113+ } ,
114+ } ,
115+ {
116+ input : path . resolve ( src , 'plugin.js' ) ,
117+ plugins : productionESPlugins ,
118+ output : {
119+ format : 'es' ,
120+ file : path . resolve ( dist , name + '.esm.min.js' ) ,
121+ sourcemap : true
122+ } ,
123+ } ,
124+ {
125+ input : path . resolve ( src , 'OverlayScrollbars.js' ) ,
126+ plugins : productionPlugins ,
127+ output : {
128+ format : 'umd' ,
129+ name : 'OverlayScrollbars' ,
130+ file : path . resolve ( base , 'overlay-scrollbars.js' ) ,
131+ // sourcemap: true
132+ } ,
133+ }
134+ ] ;
135+ configs . splice ( 2 , 1 ) ;
136+ configs . push ( ...newConfigs ) ;
137+ }
138+
139+ module . exports = configs ;
0 commit comments