rump-scripts
Version:
Rump piece for building JS with Webpack
70 lines (56 loc) • 8.42 kB
JavaScript
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
var _gulp = require('gulp');
var _gulp2 = _interopRequireDefault(_gulp);
var _rump = require('rump');
var _rump2 = _interopRequireDefault(_rump);
var _webpack = require('webpack');
var _globule = require('globule');
var _gulpUtil = require('gulp-util');
var _path = require('path');
var _package = require('../../package');
var name = _rump2['default'].taskName.bind(_rump2['default']);
var task = _gulp2['default'].task.bind(_gulp2['default']);
var blue = _gulpUtil.colors.blue;
var green = _gulpUtil.colors.green;
var magenta = _gulpUtil.colors.magenta;
var yellow = _gulpUtil.colors.yellow;
var CommonsChunkPlugin = _webpack.optimize.CommonsChunkPlugin;
var configs = _rump2['default'].configs;
task(name('info:scripts'), function () {
var plugins = configs.webpack.plugins;
var glob = (0, _path.join)(configs.main.paths.source.root, configs.main.paths.source.scripts, configs.main.globs.build.scripts);
var files = (0, _globule.find)([glob].concat(configs.main.globs.global));
var source = (0, _path.join)(configs.main.paths.source.root, configs.main.paths.source.scripts);
var destination = (0, _path.join)(configs.main.paths.destination.root, configs.main.paths.destination.scripts);
var commonFile = plugins.reduce(function (currentFile, plugin) {
return !currentFile && plugin instanceof CommonsChunkPlugin ? (0, _path.join)(configs.main.paths.destination.root, configs.main.paths.destination.scripts, plugin.filenameTemplate) : currentFile;
}, null);
var action = 'copied';
if (!files.length) {
return;
}
switch (configs.main.environment) {
case 'development':
action = 'copied ' + yellow('with source maps');
break;
case 'production':
action = yellow('minified') + ' and copied';
break;
default:
break;
}
console.log();
console.log(magenta('--- Scripts v' + _package.version));
console.log('Processed scripts from ' + green(source) + ' are ' + action, 'to ' + green(destination));
if (configs.main.scripts.common && commonFile) {
console.log('Common modules across processed scripts', 'are built into ' + green(commonFile));
}
console.log('Affected files:');
files.forEach(function (file) {
return console.log(blue((0, _path.relative)(source, file)));
});
console.log();
});
_gulp.tasks[name('info')].dep.push(name('info:scripts'));
//# sourceMappingURL=data:application/json;base64,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QyxDQUFHLENBQUE7QUFDdkMsTUFBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksVUFBVSxFQUFFO0FBQzVDLFdBQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLHNCQUN2QixLQUFLLENBQUMsVUFBVSxDQUFDLENBQUcsQ0FBQTtHQUNuRDtBQUNELFNBQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUM5QixPQUFLLENBQUMsT0FBTyxDQUFDLFVBQUEsSUFBSTtXQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFTLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0dBQUEsQ0FBQyxDQUFBO0FBQ2hFLFNBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtDQUNkLENBQUMsQ0FBQTs7QUFFRixZQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUEiLCJmaWxlIjoiaW5mby5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBndWxwLCB7dGFza3N9IGZyb20gJ2d1bHAnXG5pbXBvcnQgcnVtcCBmcm9tICdydW1wJ1xuaW1wb3J0IHtvcHRpbWl6ZX0gZnJvbSAnd2VicGFjaydcbmltcG9ydCB7ZmluZH0gZnJvbSAnZ2xvYnVsZSdcbmltcG9ydCB7Y29sb3JzfSBmcm9tICdndWxwLXV0aWwnXG5pbXBvcnQge2pvaW4sIHJlbGF0aXZlfSBmcm9tICdwYXRoJ1xuaW1wb3J0IHt2ZXJzaW9ufSBmcm9tICcuLi8uLi9wYWNrYWdlJ1xuXG5jb25zdCBuYW1lID0gOjpydW1wLnRhc2tOYW1lLFxuICAgICAgdGFzayA9IDo6Z3VscC50YXNrLFxuICAgICAge2JsdWUsIGdyZWVuLCBtYWdlbnRhLCB5ZWxsb3d9ID0gY29sb3JzLFxuICAgICAge0NvbW1vbnNDaHVua1BsdWdpbn0gPSBvcHRpbWl6ZSxcbiAgICAgIHtjb25maWdzfSA9IHJ1bXBcblxudGFzayhuYW1lKCdpbmZvOnNjcmlwdHMnKSwgKCkgPT4ge1xuICBjb25zdCB7cGx1Z2luc30gPSBjb25maWdzLndlYnBhY2ssXG4gICAgICAgIGdsb2IgPSBqb2luKGNvbmZpZ3MubWFpbi5wYXRocy5zb3VyY2Uucm9vdCxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLnNvdXJjZS5zY3JpcHRzLFxuICAgICAgICAgICAgICAgICAgICBjb25maWdzLm1haW4uZ2xvYnMuYnVpbGQuc2NyaXB0cyksXG4gICAgICAgIGZpbGVzID0gZmluZChbZ2xvYl0uY29uY2F0KGNvbmZpZ3MubWFpbi5nbG9icy5nbG9iYWwpKSxcbiAgICAgICAgc291cmNlID0gam9pbihjb25maWdzLm1haW4ucGF0aHMuc291cmNlLnJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLnNvdXJjZS5zY3JpcHRzKSxcbiAgICAgICAgZGVzdGluYXRpb24gPSBqb2luKGNvbmZpZ3MubWFpbi5wYXRocy5kZXN0aW5hdGlvbi5yb290LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLmRlc3RpbmF0aW9uLnNjcmlwdHMpLFxuICAgICAgICBjb21tb25GaWxlID0gcGx1Z2lucy5yZWR1Y2UoKGN1cnJlbnRGaWxlLCBwbHVnaW4pID0+IHtcbiAgICAgICAgICByZXR1cm4gIWN1cnJlbnRGaWxlICYmIHBsdWdpbiBpbnN0YW5jZW9mIENvbW1vbnNDaHVua1BsdWdpblxuICAgICAgICAgICAgPyBqb2luKGNvbmZpZ3MubWFpbi5wYXRocy5kZXN0aW5hdGlvbi5yb290LFxuICAgICAgICAgICAgICAgICAgIGNvbmZpZ3MubWFpbi5wYXRocy5kZXN0aW5hdGlvbi5zY3JpcHRzLFxuICAgICAgICAgICAgICAgICAgIHBsdWdpbi5maWxlbmFtZVRlbXBsYXRlKVxuICAgICAgICAgICAgOiBjdXJyZW50RmlsZVxuICAgICAgICB9LCBudWxsKVxuICBsZXQgYWN0aW9uID0gJ2NvcGllZCdcblxuICBpZighZmlsZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgc3dpdGNoKGNvbmZpZ3MubWFpbi5lbnZpcm9ubWVudCkge1xuICBjYXNlICdkZXZlbG9wbWVudCc6XG4gICAgYWN0aW9uID0gYGNvcGllZCAke3llbGxvdygnd2l0aCBzb3VyY2UgbWFwcycpfWBcbiAgICBicmVha1xuICBjYXNlICdwcm9kdWN0aW9uJzpcbiAgICBhY3Rpb24gPSBgJHt5ZWxsb3coJ21pbmlmaWVkJyl9IGFuZCBjb3BpZWRgXG4gICAgYnJlYWtcbiAgZGVmYXVsdDpcbiAgICBicmVha1xuICB9XG4gIGNvbnNvbGUubG9nKClcbiAgY29uc29sZS5sb2cobWFnZW50YShgLS0tIFNjcmlwdHMgdiR7dmVyc2lvbn1gKSlcbiAgY29uc29sZS5sb2coYFByb2Nlc3NlZCBzY3JpcHRzIGZyb20gJHtncmVlbihzb3VyY2UpfSBhcmUgJHthY3Rpb259YCxcbiAgICAgICAgICAgICAgYHRvICR7Z3JlZW4oZGVzdGluYXRpb24pfWApXG4gIGlmKGNvbmZpZ3MubWFpbi5zY3JpcHRzLmNvbW1vbiAmJiBjb21tb25GaWxlKSB7XG4gICAgY29uc29sZS5sb2coJ0NvbW1vbiBtb2R1bGVzIGFjcm9zcyBwcm9jZXNzZWQgc2NyaXB0cycsXG4gICAgICAgICAgICAgICAgYGFyZSBidWlsdCBpbnRvICR7Z3JlZW4oY29tbW9uRmlsZSl9YClcbiAgfVxuICBjb25zb2xlLmxvZygnQWZmZWN0ZWQgZmlsZXM6JylcbiAgZmlsZXMuZm9yRWFjaChmaWxlID0+IGNvbnNvbGUubG9nKGJsdWUocmVsYXRpdmUoc291cmNlLCBmaWxlKSkpKVxuICBjb25zb2xlLmxvZygpXG59KVxuXG50YXNrc1tuYW1lKCdpbmZvJyldLmRlcC5wdXNoKG5hbWUoJ2luZm86c2NyaXB0cycpKVxuIl19