UNPKG

@schibstedspain/boros-cmp

Version:

Schibsted GDPR - Consent Management Provider - Standalone

57 lines (48 loc) 1.49 kB
"use strict"; 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; };