devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
59 lines (49 loc) • 1.65 kB
JavaScript
const path = require('path');
const webpack = require('webpack');
const webpackVersion = require('webpack/package.json').version;
const outputDir = process.cwd();
const sourcesDir = path.join(__dirname, '..');
let bundle = process.argv.length > 2 ? process.argv[2] : 'dx.custom';
bundle = bundle.replace(/.config.js$/, '');
const baseConfig = require('./webpack.config.js'); // eslint-disable-line node/no-missing-require
const createConfig = function(outputFile, mode) {
const config = Object.assign({}, baseConfig);
if(webpackVersion.split('.')[0] >= 4) {
config.mode = mode;
} else if(mode === 'production') {
config.plugins = (config.plugins || []).concat([
new webpack.optimize.UglifyJsPlugin({
compress: { warnings: false }
})
]);
}
config.context = process.cwd();
config.entry = './' + bundle + '.config.js';
config.output = {
path: outputDir,
filename: outputFile
};
config.resolve = {
alias: {
'devextreme': sourcesDir
}
};
return config;
};
console.log('bundling using \'' + bundle + '.config.js\'...');
webpack([
createConfig(bundle + '.debug.js', 'development'),
createConfig(bundle + '.js', 'production')
], function(err, stats) {
if(err) {
throw err;
}
const jsonStats = stats.toJson();
if(jsonStats.errors.length) {
console.log('\'' + bundle + '\' bundles creation failed!\n\n' + jsonStats.errors.join('\n\n'));
} else {
console.log('\'' + bundle + '\' bundles created!');
}
});
;