UNPKG

rump-scripts

Version:

Rump piece for building JS with Webpack

91 lines (74 loc) 11.9 kB
'use strict'; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _extend = require('extend'); var _extend2 = _interopRequireDefault(_extend); var _rump = require('rump'); var _rump2 = _interopRequireDefault(_rump); var _globule = require('globule'); var _path = require('path'); var _webpack = require('webpack'); var _file = require('./file'); var DescPlugin = _webpack.ResolverPlugin.DirectoryDescriptionFilePlugin; var protocol = process.platform === 'win32' ? 'file:///' : 'file://'; var configs = _rump2['default'].configs; var CommonsChunkPlugin = _webpack.optimize.CommonsChunkPlugin; var DedupePlugin = _webpack.optimize.DedupePlugin; var UglifyJsPlugin = _webpack.optimize.UglifyJsPlugin; var OccurrenceOrderPlugin = _webpack.optimize.OccurrenceOrderPlugin; exports['default'] = function () { var commonsChunk = 'common'; var source = (0, _path.join)(configs.main.paths.source.root, configs.main.paths.source.scripts), destination = (0, _path.join)(configs.main.paths.destination.root, configs.main.paths.destination.scripts), options = { entry: entries(), output: { path: destination, filename: '[name].js' }, module: { loaders: configs.main.scripts.loaders }, plugins: _file.plugins.concat([new _webpack.ResolverPlugin(new DescPlugin('package.json', ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main'])), new _webpack.ResolverPlugin(new DescPlugin('bower.json', ['main'])), new _webpack.DefinePlugin(configs.main.scripts.macros)]), resolve: { alias: configs.main.scripts.aliases, extensions: [''].concat(_file.extensions), modulesDirectories: ['node_modules', 'bower_components'], root: (0, _path.resolve)(source) }, watchOptions: { aggregateTimeout: 200 } }; if (configs.main.scripts.sourceMap) { options.debug = true; options.devtool = 'inline-source-map'; options.output.devtoolModuleFilenameTemplate = filenameTemplate; } if (configs.main.scripts.minify) { options.plugins.push(new UglifyJsPlugin(configs.uglifyjs)); options.plugins.push(new OccurrenceOrderPlugin()); options.plugins.push(new DedupePlugin()); } if (configs.main.scripts.common) { if (typeof configs.main.scripts.common === 'string') { commonsChunk = configs.main.scripts.common; } options.plugins.push(new CommonsChunkPlugin(commonsChunk, commonsChunk + '.js')); } if (configs.main.scripts.library) { options.output.library = configs.main.scripts.library; options.output.libraryTarget = 'umd'; } return (0, _extend2['default'])(true, options, configs.main.scripts.webpack); }; function entries() { var source = (0, _path.join)(configs.main.paths.source.root, configs.main.paths.source.scripts, configs.main.globs.build.scripts); return (0, _globule.find)([source].concat(_rump2['default'].configs.main.globs.global)).map(function (filename) { return (0, _path.basename)(filename); }).reduce(function (obj, filename) { obj[(0, _path.basename)(filename, (0, _path.extname)(filename))] = filename; return obj; }, {}); } function filenameTemplate(_ref) { var absoluteResourcePath = _ref.absoluteResourcePath; return '' + protocol + absoluteResourcePath.split(_path.sep).join('/'); } module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWdzL3dlYnBhY2suanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7c0JBQW1CLFFBQVE7Ozs7b0JBQ1YsTUFBTTs7Ozt1QkFDSixTQUFTOztvQkFDd0IsTUFBTTs7dUJBQ0wsU0FBUzs7b0JBQzVCLFFBQVE7O0FBRXBDLElBQUEsVUFBVSxHQUFHLHdCQUFlLDhCQUE4QixDQUFBO0FBQzFELElBQUEsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxHQUFHLFVBQVUsR0FBRyxTQUFTLENBQUE7QUFDaEUsSUFBQyxPQUFPLHFCQUFQLE9BQU8sQ0FBUTtJQUNmLGtCQUFrQixxQkFBbEIsa0JBQWtCO0FBQW5CLElBQXFCLFlBQVkscUJBQVosWUFBWSxDQUFZO0lBQzVDLGNBQWMscUJBQWQsY0FBYztJQUFFLHFCQUFxQixxQkFBckIscUJBQXFCOztxQkFFN0IsWUFBVztBQUN4QixNQUFJLFlBQVksR0FBRyxRQUFRLENBQUE7QUFDM0IsTUFBTSxNQUFNLEdBQUcsZ0JBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztNQUNoRCxXQUFXLEdBQUcsZ0JBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztNQUMxRCxPQUFPLEdBQUc7QUFDUixTQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ2hCLFVBQU0sRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBQztBQUNsRCxVQUFNLEVBQUUsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDO0FBQy9DLFdBQU8sRUFBRSxj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QyxDQUN6RCxHQUFHLENBQUMsVUFBQSxRQUFRO1dBQUksb0JBQVMsUUFBUSxDQUFDO0dBQUEsQ0FBQyxDQUNuQyxNQUFNLENBQUMsVUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFLO0FBQ3pCLE9BQUcsQ0FBQyxvQkFBUyxRQUFRLEVBQUUsbUJBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQTtBQUNyRCxXQUFPLEdBQUcsQ0FBQTtHQUNYLEVBQUUsRUFBRSxDQUFDLENBQUE7Q0FDVDs7QUFFRCxTQUFTLGdCQUFnQixDQUFDLElBQXNCLEVBQUU7TUFBdkIsb0JBQW9CLEdBQXJCLElBQXNCLENBQXJCLG9CQUFvQjs7QUFDN0MsY0FBVSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxXQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFFO0NBQ2pFIiwiZmlsZSI6IndlYnBhY2suanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXh0ZW5kIGZyb20gJ2V4dGVuZCdcbmltcG9ydCBydW1wIGZyb20gJ3J1bXAnXG5pbXBvcnQge2ZpbmR9IGZyb20gJ2dsb2J1bGUnXG5pbXBvcnQge2Jhc2VuYW1lLCBleHRuYW1lLCBqb2luLCByZXNvbHZlLCBzZXB9IGZyb20gJ3BhdGgnXG5pbXBvcnQge0RlZmluZVBsdWdpbiwgUmVzb2x2ZXJQbHVnaW4sIG9wdGltaXplfSBmcm9tICd3ZWJwYWNrJ1xuaW1wb3J0IHtleHRlbnNpb25zLCBwbHVnaW5zfSBmcm9tICcuL2ZpbGUnXG5cbmNvbnN0IERlc2NQbHVnaW4gPSBSZXNvbHZlclBsdWdpbi5EaXJlY3RvcnlEZXNjcmlwdGlvbkZpbGVQbHVnaW4sXG4gICAgICBwcm90b2NvbCA9IHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyAnZmlsZTovLy8nIDogJ2ZpbGU6Ly8nLFxuICAgICAge2NvbmZpZ3N9ID0gcnVtcCxcbiAgICAgIHtDb21tb25zQ2h1bmtQbHVnaW4sIERlZHVwZVBsdWdpbn0gPSBvcHRpbWl6ZSxcbiAgICAgIHtVZ2xpZnlKc1BsdWdpbiwgT2NjdXJyZW5jZU9yZGVyUGx1Z2lufSA9IG9wdGltaXplXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgY29tbW9uc0NodW5rID0gJ2NvbW1vbidcbiAgY29uc3Qgc291cmNlID0gam9pbihjb25maWdzLm1haW4ucGF0aHMuc291cmNlLnJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLnNvdXJjZS5zY3JpcHRzKSxcbiAgICAgICAgZGVzdGluYXRpb24gPSBqb2luKGNvbmZpZ3MubWFpbi5wYXRocy5kZXN0aW5hdGlvbi5yb290LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLmRlc3RpbmF0aW9uLnNjcmlwdHMpLFxuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgIGVudHJ5OiBlbnRyaWVzKCksXG4gICAgICAgICAgb3V0cHV0OiB7cGF0aDogZGVzdGluYXRpb24sIGZpbGVuYW1lOiAnW25hbWVdLmpzJ30sXG4gICAgICAgICAgbW9kdWxlOiB7bG9hZGVyczogY29uZmlncy5tYWluLnNjcmlwdHMubG9hZGVyc30sXG4gICAgICAgICAgcGx1Z2luczogcGx1Z2lucy5jb25jYXQoW1xuICAgICAgICAgICAgbmV3IFJlc29sdmVyUGx1Z2luKG5ldyBEZXNjUGx1Z2luKCdwYWNrYWdlLmpzb24nLCBbXG4gICAgICAgICAgICAgICd3ZWJwYWNrJyxcbiAgICAgICAgICAgICAgJ2Jyb3dzZXInLFxuICAgICAgICAgICAgICAnd2ViJyxcbiAgICAgICAgICAgICAgJ2Jyb3dzZXJpZnknLFxuICAgICAgICAgICAgICBbJ2phbScsICdtYWluJ10sXG4gICAgICAgICAgICAgICdtYWluJyxcbiAgICAgICAgICAgIF0pKSxcbiAgICAgICAgICAgIG5ldyBSZXNvbHZlclBsdWdpbihuZXcgRGVzY1BsdWdpbignYm93ZXIuanNvbicsIFsnbWFpbiddKSksXG4gICAgICAgICAgICBuZXcgRGVmaW5lUGx1Z2luKGNvbmZpZ3MubWFpbi5zY3JpcHRzLm1hY3JvcyksXG4gICAgICAgICAgXSksXG4gICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgYWxpYXM6IGNvbmZpZ3MubWFpbi5zY3JpcHRzLmFsaWFzZXMsXG4gICAgICAgICAgICBleHRlbnNpb25zOiBbJyddLmNvbmNhdChleHRlbnNpb25zKSxcbiAgICAgICAgICAgIG1vZHVsZXNEaXJlY3RvcmllczogWydub2RlX21vZHVsZXMnLCAnYm93ZXJfY29tcG9uZW50cyddLFxuICAgICAgICAgICAgcm9vdDogcmVzb2x2ZShzb3VyY2UpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgd2F0Y2hPcHRpb25zOiB7YWdncmVnYXRlVGltZW91dDogMjAwfSxcbiAgICAgICAgfVxuXG4gIGlmKGNvbmZpZ3MubWFpbi5zY3JpcHRzLnNvdXJjZU1hcCkge1xuICAgIG9wdGlvbnMuZGVidWcgPSB0cnVlXG4gICAgb3B0aW9ucy5kZXZ0b29sID0gJ2lubGluZS1zb3VyY2UtbWFwJ1xuICAgIG9wdGlvbnMub3V0cHV0LmRldnRvb2xNb2R1bGVGaWxlbmFtZVRlbXBsYXRlID0gZmlsZW5hbWVUZW1wbGF0ZVxuICB9XG4gIGlmKGNvbmZpZ3MubWFpbi5zY3JpcHRzLm1pbmlmeSkge1xuICAgIG9wdGlvbnMucGx1Z2lucy5wdXNoKG5ldyBVZ2xpZnlKc1BsdWdpbihjb25maWdzLnVnbGlmeWpzKSlcbiAgICBvcHRpb25zLnBsdWdpbnMucHVzaChuZXcgT2NjdXJyZW5jZU9yZGVyUGx1Z2luKCkpXG4gICAgb3B0aW9ucy5wbHVnaW5zLnB1c2gobmV3IERlZHVwZVBsdWdpbigpKVxuICB9XG4gIGlmKGNvbmZpZ3MubWFpbi5zY3JpcHRzLmNvbW1vbikge1xuICAgIGlmKHR5cGVvZiBjb25maWdzLm1haW4uc2NyaXB0cy5jb21tb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb21tb25zQ2h1bmsgPSBjb25maWdzLm1haW4uc2NyaXB0cy5jb21tb25cbiAgICB9XG4gICAgb3B0aW9ucy5wbHVnaW5zLnB1c2gobmV3IENvbW1vbnNDaHVua1BsdWdpbihjb21tb25zQ2h1bmssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtjb21tb25zQ2h1bmt9LmpzYCkpXG4gIH1cbiAgaWYoY29uZmlncy5tYWluLnNjcmlwdHMubGlicmFyeSkge1xuICAgIG9wdGlvbnMub3V0cHV0LmxpYnJhcnkgPSBjb25maWdzLm1haW4uc2NyaXB0cy5saWJyYXJ5XG4gICAgb3B0aW9ucy5vdXRwdXQubGlicmFyeVRhcmdldCA9ICd1bWQnXG4gIH1cbiAgcmV0dXJuIGV4dGVuZCh0cnVlLCBvcHRpb25zLCBjb25maWdzLm1haW4uc2NyaXB0cy53ZWJwYWNrKVxufVxuXG5mdW5jdGlvbiBlbnRyaWVzKCkge1xuICBjb25zdCBzb3VyY2UgPSBqb2luKGNvbmZpZ3MubWFpbi5wYXRocy5zb3VyY2Uucm9vdCxcbiAgICAgICAgICAgICAgICAgICAgICBjb25maWdzLm1haW4ucGF0aHMuc291cmNlLnNjcmlwdHMsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLmdsb2JzLmJ1aWxkLnNjcmlwdHMpXG5cbiAgcmV0dXJuIGZpbmQoW3NvdXJjZV0uY29uY2F0KHJ1bXAuY29uZmlncy5tYWluLmdsb2JzLmdsb2JhbCkpXG4gICAgLm1hcChmaWxlbmFtZSA9PiBiYXNlbmFtZShmaWxlbmFtZSkpXG4gICAgLnJlZHVjZSgob2JqLCBmaWxlbmFtZSkgPT4ge1xuICAgICAgb2JqW2Jhc2VuYW1lKGZpbGVuYW1lLCBleHRuYW1lKGZpbGVuYW1lKSldID0gZmlsZW5hbWVcbiAgICAgIHJldHVybiBvYmpcbiAgICB9LCB7fSlcbn1cblxuZnVuY3Rpb24gZmlsZW5hbWVUZW1wbGF0ZSh7YWJzb2x1dGVSZXNvdXJjZVBhdGh9KSB7XG4gIHJldHVybiBgJHtwcm90b2NvbH0ke2Fic29sdXRlUmVzb3VyY2VQYXRoLnNwbGl0KHNlcCkuam9pbignLycpfWBcbn1cbiJdfQ==