| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  | const webpack = require('webpack'); | 
					
						
							| 
									
										
										
										
											2022-10-27 11:49:35 +02:00
										 |  |  | const { ESBuildMinifyPlugin } = require('esbuild-loader'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  | const packageJson = require('./package.json'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const nodeModules = []; | 
					
						
							|  |  |  | [ | 
					
						
							| 
									
										
										
										
											2022-08-11 10:40:09 +02:00
										 |  |  |   ...Object.keys(packageJson.dependencies || {}), | 
					
						
							|  |  |  |   ...Object.keys(packageJson.peerDependencies || {}), | 
					
						
							|  |  |  |   ...Object.keys(packageJson.devDependencies || {}), | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  | ].forEach((module) => { | 
					
						
							| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  |   nodeModules.push(new RegExp(`^${module}(/.+)?$`)); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							|  |  |  |   entry: `${__dirname}/lib/src/index.js`, | 
					
						
							|  |  |  |   externals: nodeModules, | 
					
						
							| 
									
										
										
										
											2021-09-07 14:50:34 +02:00
										 |  |  |   mode: process.env.NODE_ENV, | 
					
						
							| 
									
										
										
										
											2022-07-19 14:26:39 +02:00
										 |  |  |   devtool: process.env.NODE_ENV === 'production' ? false : 'eval-source-map', | 
					
						
							| 
									
										
										
										
											2022-10-27 11:49:35 +02:00
										 |  |  |   optimization: { | 
					
						
							|  |  |  |     minimize: process.env.NODE_ENV === 'production', | 
					
						
							|  |  |  |     minimizer: [ | 
					
						
							|  |  |  |       new ESBuildMinifyPlugin({ | 
					
						
							|  |  |  |         target: 'es2015', | 
					
						
							|  |  |  |       }), | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  |   output: { | 
					
						
							|  |  |  |     path: `${__dirname}/build`, | 
					
						
							| 
									
										
										
										
											2021-09-07 14:50:34 +02:00
										 |  |  |     filename: `helper-plugin.${process.env.NODE_ENV}.js`, | 
					
						
							| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  |     library: { | 
					
						
							|  |  |  |       name: 'helperPlugin', | 
					
						
							|  |  |  |       type: 'umd', | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     umdNamedDefine: true, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   module: { | 
					
						
							|  |  |  |     rules: [ | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2022-10-27 11:49:35 +02:00
										 |  |  |         test: /\.m?jsx?$/, | 
					
						
							|  |  |  |         use: { | 
					
						
							|  |  |  |           loader: require.resolve('esbuild-loader'), | 
					
						
							|  |  |  |           options: { | 
					
						
							|  |  |  |             loader: 'jsx', | 
					
						
							|  |  |  |             target: 'es2015', | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         test: /\.(png|svg|jpg|gif)$/, | 
					
						
							| 
									
										
										
										
											2021-12-14 11:46:47 +01:00
										 |  |  |         type: 'asset', | 
					
						
							|  |  |  |         parser: { | 
					
						
							|  |  |  |           dataUrlCondition: { | 
					
						
							|  |  |  |             maxSize: 8192, | 
					
						
							|  |  |  |           }, | 
					
						
							| 
									
										
										
										
											2021-08-24 10:36:38 +02:00
										 |  |  |         }, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   resolve: { | 
					
						
							|  |  |  |     extensions: ['*', '.js'], | 
					
						
							|  |  |  |     cacheWithContext: false, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   plugins: [ | 
					
						
							|  |  |  |     new webpack.EnvironmentPlugin({ | 
					
						
							|  |  |  |       NODE_ENV: 'production', | 
					
						
							|  |  |  |     }), | 
					
						
							|  |  |  |   ], | 
					
						
							|  |  |  | }; |