1
- var extend = require ( 'util' ) . _extend ;
2
- var path = require ( 'path' ) ;
3
- var webpack = require ( 'webpack' ) ;
4
- var TerserPlugin = require ( 'terser-webpack-plugin' ) ;
1
+ const extend = require ( 'util' ) . _extend ;
2
+ const path = require ( 'path' ) ;
3
+ const nodeExternals = require ( 'webpack-node-externals ' ) ;
4
+ const TerserPlugin = require ( 'terser-webpack-plugin' ) ;
5
5
6
- var outputPath = path . resolve ( __dirname , 'dist' ) ;
6
+ const outputPath = path . resolve ( __dirname , 'dist' ) ;
7
7
8
8
// Packages that need to be transpiled to ES5
9
- var needToTranspile = [ '@rrweb' , 'error-stack-parser-es' ] . join ( '|' ) ;
10
- var excludePattern = new RegExp ( 'node_modules/(?!(' + needToTranspile + ')/)' ) ;
9
+ const needToTranspile = [ '@rrweb' , 'error-stack-parser-es' ] . join ( '|' ) ;
10
+ const excludePattern = new RegExp (
11
+ 'node_modules/(?!(' + needToTranspile + ')/)' ,
12
+ ) ;
11
13
12
- var uglifyPlugin = new TerserPlugin ( {
14
+ const uglifyPlugin = new TerserPlugin ( {
13
15
parallel : true ,
14
16
} ) ;
15
17
16
- var snippetConfig = {
18
+ const snippetConfig = {
17
19
name : 'snippet' ,
18
20
entry : {
19
21
'rollbar.snippet' : './src/browser/bundles/rollbar.snippet.js' ,
@@ -26,15 +28,15 @@ var snippetConfig = {
26
28
module : {
27
29
rules : [
28
30
{
29
- test : / \. j s $ / ,
31
+ test : / \. m ? j s $ / ,
30
32
loader : 'babel-loader' ,
31
33
exclude : [ excludePattern , / v e n d o r / ] ,
32
34
} ,
33
35
] ,
34
36
} ,
35
37
} ;
36
38
37
- var pluginConfig = {
39
+ const pluginConfig = {
38
40
name : 'plugins' ,
39
41
entry : {
40
42
jquery : './src/browser/plugins/jquery.js' ,
@@ -55,7 +57,7 @@ var pluginConfig = {
55
57
} ,
56
58
} ;
57
59
58
- var vanillaConfigBase = {
60
+ const vanillaConfigBase = {
59
61
entry : {
60
62
rollbar : './src/browser/bundles/rollbar.js' ,
61
63
} ,
@@ -75,7 +77,7 @@ var vanillaConfigBase = {
75
77
} ,
76
78
} ;
77
79
78
- var UMDConfigBase = {
80
+ const UMDConfigBase = {
79
81
entry : {
80
82
'rollbar.umd' : [ './src/browser/bundles/rollbar.js' ] ,
81
83
} ,
@@ -99,20 +101,42 @@ var UMDConfigBase = {
99
101
} ,
100
102
} ;
101
103
102
- var noConflictConfigBase = extend ( { } , UMDConfigBase ) ;
104
+ const serverCJSConfigBase = {
105
+ entry : {
106
+ rollbar : './src/server/rollbar.js' ,
107
+ } ,
108
+ output : {
109
+ path : outputPath ,
110
+ libraryTarget : 'commonjs2' ,
111
+ libraryExport : 'default' ,
112
+ } ,
113
+ target : 'node' ,
114
+ externals : [ nodeExternals ( ) ] ,
115
+ module : {
116
+ rules : [
117
+ {
118
+ test : / \. m ? j s $ / ,
119
+ loader : 'babel-loader' ,
120
+ exclude : [ excludePattern , / v e n d o r / ] ,
121
+ } ,
122
+ ] ,
123
+ } ,
124
+ } ;
125
+
126
+ const noConflictConfigBase = extend ( { } , UMDConfigBase ) ;
103
127
noConflictConfigBase . entry = {
104
128
'rollbar.noconflict.umd' : [ './src/browser/bundles/rollbar.noconflict.js' ] ,
105
129
} ;
106
130
107
- var namedAMDConfigBase = extend ( { } , UMDConfigBase ) ;
131
+ const namedAMDConfigBase = extend ( { } , UMDConfigBase ) ;
108
132
namedAMDConfigBase . entry = {
109
133
'rollbar.named-amd' : namedAMDConfigBase . entry [ 'rollbar.umd' ] ,
110
134
} ;
111
135
namedAMDConfigBase . output = extend ( { } , namedAMDConfigBase . output ) ;
112
136
namedAMDConfigBase . output . library = 'rollbar' ;
113
137
namedAMDConfigBase . output . libraryTarget = 'amd' ;
114
138
115
- var config = [ snippetConfig , pluginConfig ] ;
139
+ const config = [ snippetConfig , pluginConfig ] ;
116
140
117
141
function optimizationConfig ( minimizer ) {
118
142
return {
@@ -122,7 +146,7 @@ function optimizationConfig(minimizer) {
122
146
}
123
147
124
148
function addVanillaToConfig ( webpackConfig , filename , extraPlugins , minimizer ) {
125
- var vanillaConfig = extend ( { } , vanillaConfigBase ) ;
149
+ const vanillaConfig = extend ( { } , vanillaConfigBase ) ;
126
150
vanillaConfig . name = filename ;
127
151
128
152
vanillaConfig . plugins = extraPlugins ;
@@ -135,7 +159,7 @@ function addVanillaToConfig(webpackConfig, filename, extraPlugins, minimizer) {
135
159
}
136
160
137
161
function addUMDToConfig ( webpackConfig , filename , extraPlugins , minimizer ) {
138
- var UMDConfig = extend ( { } , UMDConfigBase ) ;
162
+ const UMDConfig = extend ( { } , UMDConfigBase ) ;
139
163
140
164
UMDConfig . plugins = extraPlugins ;
141
165
@@ -152,7 +176,7 @@ function addNoConflictToConfig(
152
176
extraPlugins ,
153
177
minimizer ,
154
178
) {
155
- var noConflictConfig = extend ( { } , noConflictConfigBase ) ;
179
+ const noConflictConfig = extend ( { } , noConflictConfigBase ) ;
156
180
157
181
noConflictConfig . plugins = extraPlugins ;
158
182
@@ -167,7 +191,7 @@ function addNoConflictToConfig(
167
191
}
168
192
169
193
function addNamedAMDToConfig ( webpackConfig , filename , extraPlugins , minimizer ) {
170
- var AMDConfig = extend ( { } , namedAMDConfigBase ) ;
194
+ const AMDConfig = extend ( { } , namedAMDConfigBase ) ;
171
195
172
196
AMDConfig . plugins = extraPlugins ;
173
197
@@ -178,11 +202,19 @@ function addNamedAMDToConfig(webpackConfig, filename, extraPlugins, minimizer) {
178
202
webpackConfig . push ( AMDConfig ) ;
179
203
}
180
204
205
+ function addServerCJSConfigBase ( webpackConfig , filename , minimizer ) {
206
+ const serverConfig = extend ( { } , serverCJSConfigBase ) ;
207
+ serverConfig . optimization = optimizationConfig ( minimizer ) ;
208
+ serverConfig . output = extend ( { filename } , serverCJSConfigBase . output ) ;
209
+ webpackConfig . push ( serverConfig ) ;
210
+ }
211
+
181
212
function generateBuildConfig ( name , plugins , minimizer ) {
182
213
addVanillaToConfig ( config , name , plugins , minimizer ) ;
183
214
addUMDToConfig ( config , name , plugins , minimizer ) ;
184
215
addNamedAMDToConfig ( config , name , plugins , minimizer ) ;
185
216
addNoConflictToConfig ( config , name , plugins , minimizer ) ;
217
+ addServerCJSConfigBase ( config , name . replace ( '.js' , '.cjs' ) , minimizer ) ;
186
218
}
187
219
188
220
generateBuildConfig ( '[name].js' , [ ] ) ;
0 commit comments