'use strict';
const path = require('path'); const webpack = require('webpack'); const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const devMode = process.env.NODE_ENV !== 'production'
function getHotCSS(bundle, devMode) {
if(!devMode) { return bundle; } return [ 'css-hot-loader', ].concat(bundle);
}
const prod = {
mode: devMode ? 'development' : 'production', devtool: devMode ? 'cheap-module-source-map' : 'source-map', entry: [ './ekko-lightbox.js', './ekko-lightbox.less' ], output: { path: path.resolve(__dirname, 'dist'), filename: devMode ? '[name].js' : 'ekko-lightbox.js' }, module: { rules: [{ test: /\.less$/, use: getHotCSS([ MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { sourceMap: true } }, { loader: 'postcss-loader', options: { ident: 'postcss', sourceMap: true, plugins: (loader) => [ require('autoprefixer')({ browsers: ['last 2 versions'] }), require('cssnano')() ] } }, { loader: 'less-loader', options: { sourceMap: true } } ], devMode) }, { test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: [require('babel-preset-env')] } } }] }, plugins: [ new MiniCssExtractPlugin({ filename: devMode ? '[name].css' : 'ekko-lightbox.css' }) ],
};
if (!devMode) {
prod.plugins.push( new webpack.BannerPlugin({ banner: 'Lightbox for Bootstrap by @ashleydw\n' + 'https://github.com/ashleydw/lightbox\n' + '\n' + 'License: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n', entryOnly: true, include: 'ekko-lightbox.js' }) );
} else {
prod.entry.push('./index.html'); prod.module.rules.push({ test: /\.html$/, use: "raw-loader" });
}
module.exports = prod;