2021-08-24 10:36:38 +02:00
|
|
|
const webpack = require('webpack');
|
|
|
|
const path = require('path');
|
|
|
|
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',
|
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: [
|
|
|
|
{
|
|
|
|
test: /\.js$/,
|
|
|
|
include: path.resolve(__dirname, 'lib', 'src'),
|
|
|
|
loader: 'babel-loader',
|
|
|
|
exclude: /(node_modules)/,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
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',
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
};
|