/* global __dirname, require, module*/ const webpack = require('webpack'); const UglifyJsPlugin = webpack.optimize.UglifyJsPlugin; const path = require('path'); const env = require('yargs').argv.env; // use --env with webpack 2 let libraryName = 'DataTable', outputFile = 'frappe-datatable'; let plugins = []; if (env === 'build') { plugins.push(new UglifyJsPlugin({ minimize: true })); outputFile += '.min.js'; } else { outputFile += '.js'; } const config = { entry: __dirname + '/src/index.js', devtool: 'source-map', output: { path: __dirname + '/lib', filename: outputFile, library: libraryName, libraryTarget: 'umd', umdNamedDefine: true }, module: { rules: [ { test: /(\.jsx|\.js)$/, loader: 'babel-loader', exclude: /(node_modules|bower_components)/ }, { test: /(\.jsx|\.js)$/, loader: 'eslint-loader', exclude: /node_modules/ }, { test: /\.scss$/, use: [{ loader: 'style-loader' // creates style nodes from JS strings }, { loader: 'css-loader' // translates CSS into CommonJS }, { loader: 'sass-loader' // compiles Sass to CSS }] } ] }, resolve: { modules: [path.resolve('./node_modules'), path.resolve('./src')], extensions: ['.json', '.js'] }, plugins: plugins, externals: { 'clusterize.js': { commonjs: 'clusterize.js', commonjs2: 'clusterize.js', root: 'Clusterize' }, sortablejs: { commonjs: 'sortablejs', commonjs2: 'sortablejs', root: 'Sortable' } } }; module.exports = config;