62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
// NOTE: this configuration file MUST NOT be loaded with `-p` or `--optimize-minimize` option.
|
|
// This option includes an implicit call to UglifyJsPlugin and LoaderOptionsPlugin. Instead,
|
|
// an explicit call is made in this file to these plugins with customized options that enables
|
|
// more control of the output bundle in order to fix unexpected behavior in old browsers.
|
|
|
|
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
|
const path = require('path');
|
|
const env = require('yargs').argv.env;
|
|
|
|
const libraryName = 'CartoNode';
|
|
const fileName = 'carto-node';
|
|
|
|
const outputFile = env !== 'build'
|
|
? fileName + '.js'
|
|
: fileName + '.min.js';
|
|
|
|
const config = {
|
|
entry: './lib/assets/javascripts/carto-node/index',
|
|
|
|
output: {
|
|
path: path.resolve(__dirname, '../../vendor/assets/javascripts/carto-node'),
|
|
filename: outputFile,
|
|
library: libraryName,
|
|
libraryTarget: 'umd'
|
|
},
|
|
|
|
devtool: 'source-map',
|
|
|
|
module: {
|
|
rules: [{
|
|
test: /\.js$/,
|
|
loader: 'babel-loader',
|
|
include: [
|
|
path.resolve(__dirname, '../../lib/assets/javascripts/carto-node')
|
|
],
|
|
options: {
|
|
presets: ['env'],
|
|
plugins: ['transform-object-assign']
|
|
}
|
|
}]
|
|
},
|
|
|
|
optimization: {
|
|
minimizer: [
|
|
new UglifyJsPlugin({
|
|
cache: false,
|
|
parallel: true,
|
|
uglifyOptions: {
|
|
sourceMap: true,
|
|
keep_fnames: true,
|
|
output: {
|
|
ascii_only: true,
|
|
beautify: false
|
|
}
|
|
}
|
|
})
|
|
]
|
|
}
|
|
};
|
|
|
|
module.exports = config;
|