@schibstedspain/boros-cmp
Version:
Schibsted GDPR - Consent Management Provider - Standalone
57 lines (48 loc) • 1.49 kB
JavaScript
;
var webpack = require('webpack');
var path = require('path');
var CleanWebpackPlugin = require('clean-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var WEBPACK_MODE_PRODUCTION = 'production';
var OUTPUT_DIST_FOLDER = 'dist';
var ENTRY_PATH = './src/cmp/infrastructure/build/cmp.js';
var OUTPUT_FILENAME_DEV = 'cmp.dev.js';
var OUTPUT_FILENAME_PRO = 'cmp.pro.js';
var getMajorVersionFromPackageJsonVersion = function getMajorVersionFromPackageJsonVersion() {
return parseInt(JSON.stringify(process.env.npm_package_version.split('.')[0]));
};
var webpackConfig = {
devtool: 'inline-source-map',
entry: ENTRY_PATH,
output: {
path: path.resolve(OUTPUT_DIST_FOLDER),
filename: OUTPUT_FILENAME_DEV,
libraryTarget: 'umd'
},
module: {
rules: [{
test: /\.js$/,
exclude: /(node_modules|src\/cmp\/infrastructure\/build)/,
use: {
loader: 'babel-loader'
}
}]
},
plugins: [new webpack.DefinePlugin({
1: getMajorVersionFromPackageJsonVersion()
}), new CleanWebpackPlugin([OUTPUT_DIST_FOLDER], {
verbose: true,
root: process.cwd()
}), new HtmlWebpackPlugin({
title: 'CMP Demo',
template: 'resources/cmp/template.html',
filename: 'index.html'
})]
};
module.exports = function (env, argv) {
if (argv.mode === WEBPACK_MODE_PRODUCTION) {
webpackConfig.output.filename = OUTPUT_FILENAME_PRO;
webpackConfig.devtool = false;
}
return webpackConfig;
};