File size: 2,196 Bytes
d86254c f0acb91 1809cfd 4554dfb a98e9c8 d86254c d52f2d6 e3c10a2 d52f2d6 d86254c d52f2d6 c766f4e 25ec032 d52f2d6 8a554f1 f0dbec9 c766f4e 4554dfb a98e9c8 d52f2d6 c766f4e 8122c36 dd89937 c766f4e ef1f6b6 c766f4e 1809cfd d52f2d6 17851f6 d52f2d6 1809cfd d86254c c766f4e 1809cfd d52f2d6 1809cfd 4554dfb f0acb91 17851f6 f0acb91 a98e9c8 1809cfd c766f4e ebda3a6 c766f4e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const isProduction = process.env.NODE_ENV === 'production';
const scriptFileName = 'driver-demo.min.js';
const styleFileName = 'driver-demo.min.css';
module.exports = {
mode: isProduction ? 'production' : 'development',
entry: [
'./demo/styles/demo.scss',
'./demo/scripts/demo.js',
'./src/index.js',
].filter(entryPoint => !!entryPoint),
output: {
path: path.join(__dirname, '/../dist/demo'),
publicPath: './',
filename: scriptFileName,
libraryTarget: 'umd',
library: 'Driver',
libraryExport: 'default',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
enforce: 'pre',
options: {
failOnWarning: false,
failOnError: true,
},
},
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /.scss$/,
loader: ExtractTextPlugin.extract([
{
loader: 'css-loader',
options: { url: false },
},
'sass-loader',
]),
},
],
},
plugins: [
new ExtractTextPlugin({
filename: styleFileName,
allChunks: true,
}),
new OptimizeCssAssetsPlugin({
assetNameRegExp: /\.min\.css$/g,
// eslint-disable-next-line global-require
cssProcessor: require('cssnano'),
cssProcessorPluginOptions: {
preset: [
'default',
{
discardComments: { removeAll: true },
},
],
},
canPrint: true,
}),
new CopyWebpackPlugin([
{
from: './demo/images/',
to: 'images',
},
]),
new HtmlWebpackPlugin({
template: 'demo/index.html',
favicon: 'demo/images/favicon.png',
}),
],
stats: {
colors: true,
},
devtool: 'cheap-module-eval-source-map',
};
|