From 7127dc7f78eac19abb007abe813f60389540f822 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 13:35:03 -0700 Subject: [PATCH 01/14] Start building build with build --- bin/name.js | 1184 +++++++++++++++++ blueprints.config.js | 47 + .../client/src/{Client.es6.js => Client.js} | 0 .../plugins/NodeExecutablePlugin.js | 5 + lib/output/SimpleOutput.js | 2 +- npm-debug.log | 48 + package.json | 15 +- bin/buildBlueprints.js => src/blueprints.js | 5 +- bin/buildWebfonts.js => src/webfonts.js | 0 9 files changed, 1298 insertions(+), 8 deletions(-) create mode 100755 bin/name.js create mode 100644 blueprints.config.js rename examples/client/src/{Client.es6.js => Client.js} (100%) create mode 100644 lib/generators/plugins/NodeExecutablePlugin.js create mode 100644 npm-debug.log rename bin/buildBlueprints.js => src/blueprints.js (97%) rename bin/buildWebfonts.js => src/webfonts.js (100%) diff --git a/bin/name.js b/bin/name.js new file mode 100755 index 0000000..95d55ac --- /dev/null +++ b/bin/name.js @@ -0,0 +1,1184 @@ +#!/usr/bin/env node +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.l = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 49); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports) { + + module.exports = require("lodash"); + +/***/ }, +/* 1 */ +/***/ function(module, exports) { + + module.exports = require("webpack"); + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + + var _ = __webpack_require__(0); + + function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { + var parsed = parseNameOrObject(nameOrObject); + if (!parsed) { + return nameOrObject; + } + + var thing = lookupTable[parsed.name]; + if (!thing) { + throw new Error('Failed to resolve ' + nameOrObject + ' ' + thingKind); + return; + } + if (typeof thing === 'function') { + return thing(parsed.options); + } + + return thing; + } + + function parseNameOrObject(nameOrObject) { + if (typeof nameOrObject === 'string') { + return { name: nameOrObject, options: {} }; + } + + if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { + var name = nameOrObject.generator; + if (typeof name === 'string') { + return { name: name, options: _.omit(nameOrObject, 'name') }; + } + } + } + + module.exports = { + tryToLoadGenerator: tryToLoadGenerator + }; + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + module.exports = require("fs"); + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + module.exports = require("path"); + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + module.exports = require("yargs"); + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + module.exports = require("extract-text-webpack-plugin"); + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + var path = __webpack_require__(4); + + module.exports = function (options) { + return { + path: path.resolve(options.dest), + filename: options.name || '[name].js' + }; + }; + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var path = __webpack_require__(4); + var SimpleResolver = __webpack_require__(9); + + function resolvePath(strPath) { + return path.resolve(strPath); // path.resolve seems to have a binding issue; + } + + module.exports = function (options) { + return _.extend(SimpleResolver(options), { + modules: (options.paths || []).map(resolvePath) + }); + }; + +/***/ }, +/* 9 */ +/***/ function(module, exports) { + + module.exports = function (options) { + return { + extensions: options.extensions + }; + }; + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + /* eslint-disable */ + + var webpack = __webpack_require__(1); + var notifier = __webpack_require__(51); + var _ = __webpack_require__(0); + var fs = __webpack_require__(3); + + var nodeEnv = "production" || 'development'; + + module.exports = function (config, cb) { + if (!cb) { + cb = function cb() {}; + } + config.builds.forEach(function (build) { + exectuteBuild(build, cb); + }); + }; + + function exectuteBuild(build, cb) { + var compiler = webpack(build.webpackConfig); + if (build.watch) { + compiler.watch({}, function (err, stats) { + outputBuild(build.buildName)(err, stats); + cb(stats.toJson()); + }); + } else { + compiler.run(function (err, stats) { + console.log(stats.toString({ + colors: !build.disableColors, + chunks: false, + version: false + })); + cb(stats.toJson()); + }); + } + } + + function formatAsset(asset) { + var name = asset.name; + var size = asset.size; + var sizeStr = size + " B"; + + if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; + if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; + + return name + " [" + sizeStr + "]"; + } + + function outputBuild(type) { + return function (err, stats) { + if (!err) { + console.log(stats.toString({ + colors: true, + chunks: false, + version: false + })); + + var s = stats.toJson(); + + if (s.errors && s.errors.length) { + notifier.notify({ + "title": type + " – ERROR!", + "message": "Check the console for errors" + }); + } else { + notifier.notify({ + "title": type + " – Build complete", + "message": s.assets.map(formatAsset).join("\n") + }); + } + } + }; + } + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + var DefaultClientConfig = __webpack_require__(19); + var DefaultProductionClientConfig = __webpack_require__(20); + var DefaultServerConfig = __webpack_require__(22); + var DefaultProductionServerConfig = __webpack_require__(21); + var DefaultTestingConfig = __webpack_require__(23); + + function getBuild(production, debugConfig, productionConfig) { + return production ? productionConfig : debugConfig; + } + + function getClientConfig(production) { + return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig); + } + + function getServerConfig(production) { + return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig); + } + + module.exports = { + DefaultClientConfig: DefaultClientConfig, + DefaultProductionClientConfig: DefaultProductionClientConfig, + DefaultServerConfig: DefaultServerConfig, + DefaultProductionServerConfig: DefaultProductionServerConfig, + DefaultTestingConfig: DefaultTestingConfig, + getClientConfig: getClientConfig, + getServerConfig: getServerConfig + }; + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + var getTestFiles = __webpack_require__(48); + + module.exports = function getWebpackEntryForTest(dir) { + console.log(' Searching for tests in', process.cwd()); + var files = getTestFiles(dir, '.test.'); + console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); + + return files.reduce(function (prev, cur) { + var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest'; + prev[moduleName] = cur.path; + return prev; + }, {}); + }; + +/***/ }, +/* 13 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var generators = __webpack_require__(27); + var getLoader = generators.getLoader; + var getPlugin = generators.getPlugin; + var getOutput = generators.getOutput; + var getResolver = generators.getResolver; + var getEntry = generators.getEntry; + var getPostCSS = generators.getPostCSS; + var getExternals = generators.getExternals; + + function makeBuild(shortBuild) { + return buildObject(shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name)); + } + + function buildObject(buildName, watch, webpackConfig) { + return { + watch: watch, + buildName: buildName, + webpackConfig: webpackConfig + }; + } + + function parseWebpackConfig(shortHandConfig, buildName) { + var webpackConfig = {}; + + Object.keys(shortHandConfig).forEach(function (key) { + var obj = shortHandConfig[key]; + + if (key === 'loaders') { + _.defaults(webpackConfig, { module: { loaders: [] } }); + concatInPlace(webpackConfig.module.loaders, obj.map(getLoader)); + } + + if (key === 'plugins') { + webpackConfig.plugins = obj.map(getPlugin); + } + + if (key === 'output') { + webpackConfig.output = getOutput(obj); + } + + if (key === 'resolve') { + webpackConfig.resolve = getResolver(obj); + } + + if (key === 'entry') { + webpackConfig.entry = getEntry(obj, buildName); + } + + if (key === 'postcss') { + webpackConfig.postcss = obj.map(getPostCSS); + } + + if (key === 'externals') { + webpackConfig.externals = getExternals(obj); + } + }); + + return _.extend(webpackConfig, _.omit(shortHandConfig, Object.keys(webpackConfig).concat('loaders'))); + } + + function concatInPlace(dest, source) { + source.forEach(function (thing) { + dest.push(thing); + }); + } + + function loadNameOrUseSource(thing, load) { + if (typeof thing === 'string') { + return load(thing); + } + + return thing; + } + + function mapLoadNameOrUseSource(array, loader) { + return array.map(loader); + } + + module.exports = { + makeBuild: makeBuild, + buildObject: buildObject, + parseWebpackConfig: parseWebpackConfig, + loadNameOrUseSource: loadNameOrUseSource + }; + +/***/ }, +/* 14 */ +/***/ function(module, exports) { + + function webpackEmptyContext(req) { + throw new Error("Cannot find module '" + req + "'."); + } + webpackEmptyContext.keys = function() { return []; }; + webpackEmptyContext.resolve = webpackEmptyContext; + module.exports = webpackEmptyContext; + webpackEmptyContext.id = 14; + + +/***/ }, +/* 15 */ +/***/ function(module, exports) { + + module.exports = require("colors"); + +/***/ }, +/* 16 */ +/***/ function(module, exports) { + + module.exports = require("debug"); + +/***/ }, +/* 17 */ +/***/ function(module, exports) { + + module.exports = require("mocha"); + +/***/ }, +/* 18 */ +/***/ function(module, exports) { + + module.exports = require("rimraf"); + +/***/ }, +/* 19 */ +/***/ function(module, exports) { + + module.exports = { + name: 'Client', + webpack: { + devtool: 'source-map', + entry: './src/Client.js', + output: { + generator: 'simple', + dest: './bin' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'css', 'less'], + plugins: ['extract-css', 'abort-if-errors', { + generator: 'set-node-env', + env: 'client' + }] + } + }; + +/***/ }, +/* 20 */ +/***/ function(module, exports) { + + module.exports = { + name: 'ProductionClient', + webpack: { + devtool: 'source-map', + entry: './src/Client.js', + output: { + generator: 'simple', + dest: './bin' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'css', 'less'], + plugins: ['extract-css', { + generator: 'set-node-env', + env: 'client' + }, 'production-loaders', 'minify-and-treeshake', 'abort-if-errors'] + } + }; + +/***/ }, +/* 21 */ +/***/ function(module, exports) { + + module.exports = { + name: 'ProductionServer', + webpack: { + devtool: 'source-map', + entry: './src/Server.js', + output: { + generator: 'simple', + dest: './bin' + }, + externals: { + generator: 'node-modules', + additional: ['os'] + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['production-loaders', 'minify-and-treeshake', 'abort-if-errors', 'node-load-sourcemaps'], + node: { + Buffer: false, + process: false, + global: false, + __filename: true, + __dirname: true + } + } + }; + +/***/ }, +/* 22 */ +/***/ function(module, exports) { + + module.exports = { + name: 'Server', + webpack: { + devtool: 'source-map', + entry: './src/Server.js', + output: { + generator: 'simple', + dest: './bin' + }, + externals: { + generator: 'node-modules', + additional: ['os'] + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['abort-if-errors', 'node-load-sourcemaps'], + node: { + Buffer: false, + process: false, + global: false, + __filename: true, + __dirname: true, + os: false + } + } + }; + +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + + module.exports = { + name: 'Test', + webpack: { + devtool: 'source-map', + output: { + path: './.test', + filename: '[name]' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['extract-css', 'abort-if-errors'], + externals: { + generator: 'node-modules', + additional: ['@r/platform/createTest'] + } + } + }; + +/***/ }, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + + var path = __webpack_require__(4); + var _ = __webpack_require__(0); + var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; + + var entryGenerators = {}; + + function getEntry(pathOrObject, buildName) { + // for now takes the path to the file, and the build name and makes + // the entry point object. in the future we can do things like auto traverers + // the module paths you're resolving and generate tree-shaking-less umd ready builds + // but if everything internal is using the build project its a little pointless + // return tryToLoadGenerator(entryName, entryGenerators, 'entry'); + if ((typeof pathOrObject === 'undefined' ? 'undefined' : _typeof(pathOrObject)) === 'object') { + return pathOrObject; + } + + var entryConfig = {}; + entryConfig[buildName] = path.resolve(pathOrObject); + return entryConfig; + }; + + module.exports = { + getEntry: getEntry, + entryGenerators: entryGenerators + }; + +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + + var loadNodeModules = __webpack_require__(26); + + var loaderName = 'node-modules'; + + function getExternals(externals) { + if (typeof externals === 'string') { + if (externals === loaderName) { + return loadNodeModules(); + } else { + throw new Error('invalid externals loader name, did you mean: ' + loaderName + '?'); + } + } + + if ((typeof externals === 'undefined' ? 'undefined' : _typeof(externals)) === 'object') { + if (externals.generator === loaderName) { + return loadNodeModules(externals.additional); + } + + return externals; + } + } + + module.exports = { + getExternals: getExternals + }; + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + var fs = __webpack_require__(3); + + function prependCommonjs(modules, name) { + modules[name] = 'commonjs ' + name; + return modules; + } + + var lodashSubmodules = ['array', 'collection', 'date', 'function', 'lang', 'math', 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods'].map(function (name) { + return 'lodash/' + name; + }); + + module.exports = function (additional) { + var nodeModules = {}; + + fs.readdirSync('node_modules').filter(function (x) { + return ['.bin'].indexOf(x) === -1; + }).reduce(prependCommonjs, nodeModules); + + if (additional) { + additional.reduce(prependCommonjs, nodeModules); + } + + if (nodeModules.lodash) { + lodashSubmodules.reduce(prependCommonjs, nodeModules); + } + + return nodeModules; + }; + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + var getLoader = __webpack_require__(33).getLoader; + var getPlugin = __webpack_require__(43).getPlugin; + var getOutput = __webpack_require__(35).getOutput; + var getResolver = __webpack_require__(47).getResolver; + var getEntry = __webpack_require__(24).getEntry; + var getExternals = __webpack_require__(25).getExternals; + var getPostCSS = __webpack_require__(45).getPostCSS; + + module.exports = { + getLoader: getLoader, + getPlugin: getPlugin, + getOutput: getOutput, + getResolver: getResolver, + getEntry: getEntry, + getExternals: getExternals, + getPostCSS: getPostCSS + }; + +/***/ }, +/* 28 */ +/***/ function(module, exports, __webpack_require__) { + + var ExtractTextPlugin = __webpack_require__(6); + + module.exports = { + test: /\.css$/, + loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader') + }; + +/***/ }, +/* 29 */ +/***/ function(module, exports) { + + module.exports = { + test: /\.es6\.js$|\.js$|\.jsx$/, + exclude: /node_modules/, + loader: 'babel', + query: { + presets: ['es2015-native-modules', 'stage-2', 'react'], + plugins: ['transform-class-properties', 'transform-react-constant-elements', 'transform-react-inline-elements', 'lodash'] + } + }; + +/***/ }, +/* 30 */ +/***/ function(module, exports) { + + module.exports = { + test: /\.css$|\.less$/, + loader: 'ignore-loader' + }; + +/***/ }, +/* 31 */ +/***/ function(module, exports) { + + module.exports = { + test: /\.json$/, + loader: 'json-loader' + }; + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + var ExtractTextPlugin = __webpack_require__(6); + + module.exports = { + test: /\.less$/, + loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader') + }; + +/***/ }, +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; + + var ESNextReactLoader = __webpack_require__(29); + var JSONLoader = __webpack_require__(31); + var CSSLoader = __webpack_require__(28); + var LessLoader = __webpack_require__(32); + var IgnoreStylesLoader = __webpack_require__(30); + + var loaders = { + 'esnextreact': ESNextReactLoader, + 'ESNextReact': ESNextReactLoader, + 'json': JSONLoader, + 'css': CSSLoader, + 'less': LessLoader, + 'ignore-styles': IgnoreStylesLoader + }; + + var getLoader = function getLoader(loaderName) { + return tryToLoadGenerator(loaderName, loaders, 'loader'); + }; + + module.exports = { + loaders: loaders, + getLoader: getLoader + }; + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var SimpleOutput = __webpack_require__(7); + + module.exports = function (options) { + return _.extend(SimpleOutput(options), { + library: options.libraryName || '[name].js', + libraryTarget: options.target || 'var' + }); + }; + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; + + var SimpleOutput = __webpack_require__(7); + var LibraryOutput = __webpack_require__(34); + + function libraryOfTarget(target) { + return function (options) { + return LibraryOutput(_.extend(options, { + target: target + })); + }; + } + + var outputs = { + simple: SimpleOutput, + library: LibraryOutput, + this: libraryOfTarget('this'), + commonjs: libraryOfTarget('commonjs'), + commonjs2: libraryOfTarget('commonjs2'), + amd: libraryOfTarget('amd'), + umd: libraryOfTarget('umd') + }; + + var getOutput = function getOutput(outputName) { + return tryToLoadGenerator(outputName, outputs, 'output'); + }; + + module.exports = { + outputs: outputs, + getOutput: getOutput + }; + +/***/ }, +/* 36 */ +/***/ function(module, exports, __webpack_require__) { + + var webpack = __webpack_require__(1); + + module.exports = new webpack.NoErrorsPlugin(); + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + var webpack = __webpack_require__(1); + + module.exports = new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: Infinity, + filename: 'vendor.bundle.js' + }); + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + var webpack = __webpack_require__(1); + + module.exports = new webpack.LoaderOptionsPlugin({ + minimize: true, + debug: false + }); + +/***/ }, +/* 39 */ +/***/ function(module, exports, __webpack_require__) { + + var ExtractTextPlugin = __webpack_require__(6); + + module.exports = new ExtractTextPlugin('[name].css'); + +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { + + var webpack = __webpack_require__(1); + + module.exports = new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + output: { + comments: false + }, + sourceMap: true + }); + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + var webpack = __webpack_require__(1); + + module.exports = new webpack.BannerPlugin({ + banner: 'require("source-map-support").install();', + raw: true, + entryOnly: false + }); + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + var webpack = __webpack_require__(1); + + var nodeEnv = "production" || 'production'; + var env = "server" || 'server'; + + module.exports = function (options) { + return new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), + ENV: JSON.stringify(options.env || env) + } + }); + }; + +/***/ }, +/* 43 */ +/***/ function(module, exports, __webpack_require__) { + + var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; + var AbortIfErrorsPlugin = __webpack_require__(36); + var BundleCommonChunksPlugin = __webpack_require__(37); + var EnableProductionLoadersPlugin = __webpack_require__(38); + var ExtractCSSPlugin = __webpack_require__(39); + var MinifyAndTreeShakePlugin = __webpack_require__(40); + var NodeLoadSourceMapsPlugin = __webpack_require__(41); + var SetNodeEnvironmentPlugin = __webpack_require__(42); + + var plugins = { + 'abort-if-errors': AbortIfErrorsPlugin, + 'bundle-common': BundleCommonChunksPlugin, + 'extract-css': ExtractCSSPlugin, + 'production-loaders': EnableProductionLoadersPlugin, + 'minify-and-treeshake': MinifyAndTreeShakePlugin, + 'node-load-sourcemaps': NodeLoadSourceMapsPlugin, + 'set-node-env': SetNodeEnvironmentPlugin + }; + + function getPlugin(pluginName) { + return tryToLoadGenerator(pluginName, plugins, 'plugin'); + } + + module.exports = { + plugins: plugins, + getPlugin: getPlugin + }; + +/***/ }, +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + var autoprefixer = __webpack_require__(50); + + module.exports = function (options) { + return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions'] }); + }; + +/***/ }, +/* 45 */ +/***/ function(module, exports, __webpack_require__) { + + var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; + var AutoprefixerPostCSS = __webpack_require__(44); + + var postCSSHooks = { + 'autoprefixer-custom': AutoprefixerPostCSS, + 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }) + }; + + var getPostCSS = function getPostCSS(postCSSHookName) { + return tryToLoadGenerator(postCSSHookName, postCSSHooks, 'postcsshooks'); + }; + + module.exports = { + postCSSHooks: postCSSHooks, + getPostCSS: getPostCSS + }; + +/***/ }, +/* 46 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var ModulesResolver = __webpack_require__(8); + + module.exports = function (options) { + var result = ModulesResolver(options); + result.modules = result.modules.concat('node_modules'); + return result; + }; + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + + var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; + + var SimpleResolver = __webpack_require__(9); + var ModulesResolver = __webpack_require__(8); + var NPMAndModulesResolver = __webpack_require__(46); + + var resolvers = { + 'simple': SimpleResolver, + 'modules': ModulesResolver, + 'npm-and-modules': NPMAndModulesResolver + }; + + function getResolver(resolverName) { + return tryToLoadGenerator(resolverName, resolvers, 'resolver'); + } + + module.exports = { + resolvers: resolvers, + getResolver: getResolver + }; + +/***/ }, +/* 48 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var fs = __webpack_require__(3); + + module.exports = function getTestFiles(dir, ext) { + if (dir.indexOf('node_modules') > -1) { + return; + } + if (dir.indexOf('.git') > -1) { + return; + } + + var files = []; + try { + files = fs.readdirSync(dir); + } catch (e) { + files = []; + } + + return files.map(function (file) { + var path = dir + file; + + try { + var stats = fs.statSync(path); + if (stats.isDirectory()) { + return getTestFiles(path + '/', ext); + } + if (file.indexOf(ext) > -1) { + return { file: file, path: path }; + } + return null; + } catch (e) { + return null; + } + }).filter(function (x) { + return x; + }).reduce(function (prev, cur) { + if (_.isArray(cur)) { + return prev.concat(cur); + } else { + return prev.concat([cur]); + } + }, []); + }; + +/***/ }, +/* 49 */ +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var fs = __webpack_require__(3); + var path = __webpack_require__(4); + var debug = __webpack_require__(16)('blueprints'); + var Mocha = __webpack_require__(17); + var colors = __webpack_require__(15); + var rimraf = __webpack_require__(18); + + var build = __webpack_require__(10); + var makeBuild = __webpack_require__(13).makeBuild; + var configs = __webpack_require__(11); + var getWebpackEntryForTest = __webpack_require__(12); + + var yargs = __webpack_require__(5); + console.log("yargs?", yargs); + + var argv = __webpack_require__(5).alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; + + console.log('...Reading Blueprints', argv.blueprintsPath); + console.log('...cwd', process.cwd()); + + function loadBuildsFromPath(configPath) { + try { + console.log('...loading bluerprints from', configPath); + var builds = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); + console.log('builds?', builds); + if (!Array.isArray(builds)) { + if (builds.extensions === true) { + return { extensions: _.omit(builds, 'extensions') }; + } + builds = [builds]; + } + + return { builds: builds }; + } catch (e) { + debug(e); + return {}; + } + } + + function applyExtensions(builds, extensions) { + var ext = extensions || {}; + console.log('...applying extensions', extensions); + return builds.map(function (build) { + return _.merge(build, ext); + }); + } + + function makeConfig(builds, extensions) { + return { builds: applyExtensions(builds, extensions).map(makeBuild) }; + } + + var builds = []; + var extensions = {}; + + if (argv.blueprintsPath && !argv.ignoreBlueprints) { + var blueprints = loadBuildsFromPath(argv.blueprintsPath); + if (blueprints.extensions) { + extensions = blueprints.extensions; + } else if (blueprints.builds && blueprints.builds.length) { + builds = blueprints.builds; + } + } + + function loadDefaultConfigs() { + console.log('...using default configs'); + if (argv.runTest) { + console.log('...Setting up tests:'); + builds = [configs.DefaultTestingConfig]; + builds[0].webpack.entry = getWebpackEntryForTest('./'); + } else if (argv.client) { + console.log('...client'); + builds = [configs.getClientConfig(argv.production)]; + } else if (argv.server) { + console.log('...server'); + builds = [configs.getServerConfig(argv.production)]; + } else if (argv.clientAndServer) { + console.log('...both'); + builds = [configs.getClientConfig(argv.production), configs.getServerConfig(argv.production)]; + } + } + + if (!builds.length) { + loadDefaultConfigs(); + } + + if (argv.watch) { + extensions.watch = true; + } + + build(makeConfig(builds, extensions), function (stats) { + if (stats.errors && stats.errors.length > 0 && !argv.watch) { + console.log(colors.red('ERROR IN BUILD. Aborting.')); + + process.exit(1); + } + + if (argv.runTest) { + console.log(colors.magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); + + var m = new Mocha(); + stats.assets.forEach(function (asset) { + var path = './.test/' + asset.name; + m.addFile(path); + }); + m.run().on('end', function () { + rimraf('./.test/', function () {}); + }); + } + }); + +/***/ }, +/* 50 */ +/***/ function(module, exports) { + + module.exports = require("autoprefixer"); + +/***/ }, +/* 51 */ +/***/ function(module, exports) { + + module.exports = require("node-notifier"); + +/***/ } +/******/ ]); \ No newline at end of file diff --git a/blueprints.config.js b/blueprints.config.js new file mode 100644 index 0000000..b2b4ea3 --- /dev/null +++ b/blueprints.config.js @@ -0,0 +1,47 @@ +function makeConfig(name) { + var entryPath = './src/' + name + '.js'; + var outputName = name + '.js'; + + return { + name: name, + webpack: { + entry: { name: entryPath }, + output: { + generator: 'simple', + dest: './bin', + name: outputName, + }, + resovlve: { + generator: 'npm-and-modules', + paths: [ '' ], + extensions: ['', '.js', '.json'], + }, + loaders: [ + 'esnextreact', + 'json', + ], + plugins: [ + 'production-loaders', + 'set-node-env', + 'abort-if-errors', + 'node-executable', + // 'minify-and-treeshake', + ], + externals: 'node-modules', + target: 'node', + node: { + process: false, + global: false, + __filename: false, + __dirname: false, + os: false, + fs: false, + console: false, + } + }, + }; +} + +console.log(makeConfig('blueprints')); + +module.exports = [ makeConfig('blueprints') ]; diff --git a/examples/client/src/Client.es6.js b/examples/client/src/Client.js similarity index 100% rename from examples/client/src/Client.es6.js rename to examples/client/src/Client.js diff --git a/lib/generators/plugins/NodeExecutablePlugin.js b/lib/generators/plugins/NodeExecutablePlugin.js new file mode 100644 index 0000000..2ea0891 --- /dev/null +++ b/lib/generators/plugins/NodeExecutablePlugin.js @@ -0,0 +1,5 @@ +var webpack = require('webpack'); + +module.exports = new webpack.BannerPlugin({ + banner: 'require' +}) diff --git a/lib/output/SimpleOutput.js b/lib/output/SimpleOutput.js index 09bedee..b299aac 100644 --- a/lib/output/SimpleOutput.js +++ b/lib/output/SimpleOutput.js @@ -1,6 +1,6 @@ var path = require('path'); -module.exports = function(options){ +module.exports = function(options) { return { path: path.join(process.cwd(), options.dest), filename: options.name || '[name].js', diff --git a/npm-debug.log b/npm-debug.log new file mode 100644 index 0000000..35e5a55 --- /dev/null +++ b/npm-debug.log @@ -0,0 +1,48 @@ +0 info it worked if it ends with ok +1 verbose cli [ '/usr/local/Cellar/node/5.5.0/bin/node', +1 verbose cli '/usr/local/bin/npm', +1 verbose cli 'run', +1 verbose cli 'watch' ] +2 info using npm@3.9.0 +3 info using node@v5.5.0 +4 verbose run-script [ 'prewatch', 'watch', 'postwatch' ] +5 info lifecycle @r/build@0.6.2~prewatch: @r/build@0.6.2 +6 silly lifecycle @r/build@0.6.2~prewatch: no script for prewatch, continuing +7 info lifecycle @r/build@0.6.2~watch: @r/build@0.6.2 +8 verbose lifecycle @r/build@0.6.2~watch: unsafe-perm in lifecycle true +9 verbose lifecycle @r/build@0.6.2~watch: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/schwers/src/reddit/r/build/node_modules/.bin:/usr/local/Cellar/node/5.5.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin +10 verbose lifecycle @r/build@0.6.2~watch: CWD: /Users/schwers/src/reddit/r/build +11 silly lifecycle @r/build@0.6.2~watch: Args: [ '-c', 'blueprints -w' ] +12 silly lifecycle @r/build@0.6.2~watch: Returned: code: 1 signal: null +13 info lifecycle @r/build@0.6.2~watch: Failed to exec watch script +14 verbose stack Error: @r/build@0.6.2 watch: `blueprints -w` +14 verbose stack Exit status 1 +14 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:245:16) +14 verbose stack at emitTwo (events.js:100:13) +14 verbose stack at EventEmitter.emit (events.js:185:7) +14 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14) +14 verbose stack at emitTwo (events.js:100:13) +14 verbose stack at ChildProcess.emit (events.js:185:7) +14 verbose stack at maybeClose (internal/child_process.js:821:16) +14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) +15 verbose pkgid @r/build@0.6.2 +16 verbose cwd /Users/schwers/src/reddit/r/build +17 error Darwin 14.5.0 +18 error argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "run" "watch" +19 error node v5.5.0 +20 error npm v3.9.0 +21 error code ELIFECYCLE +22 error @r/build@0.6.2 watch: `blueprints -w` +22 error Exit status 1 +23 error Failed at the @r/build@0.6.2 watch script 'blueprints -w'. +23 error Make sure you have the latest version of node.js and npm installed. +23 error If you do, this is most likely a problem with the @r/build package, +23 error not with npm itself. +23 error Tell the author that this fails on your system: +23 error blueprints -w +23 error You can get information on how to open an issue for this project with: +23 error npm bugs @r/build +23 error Or if that isn't available, you can get their info via: +23 error npm owner ls @r/build +23 error There is likely additional logging output above. +24 verbose exit [ 1, true ] diff --git a/package.json b/package.json index 27dd2b0..373ce99 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,14 @@ { "name": "@r/build", - "version": "0.6.2", + "version": "0.7.0", "description": "A webpack based build system that can make UMD modules, (soon)peer-dependent library builds, server 'binarys', or full client ready scripts", "scripts": { - "lint": "eslint lib" + "lint": "eslint lib src", + "build": "blueprints", + "watch": "blueprints -w" }, "bin": { - "blueprints": "./bin/buildBlueprints.js", - "webfonts": "./bin/buildWebfonts.js" + "blueprints": "./bin/name.js" }, "repository": { "type": "git", @@ -43,16 +44,18 @@ "json-loader": "^0.5.4", "less": "^2.7.1", "less-loader": "^2.2.3", + "lodash": "4.x", + "mocha": "^2.4.5", "node-notifier": "^4.5.0", "postcss-loader": "^0.9.1", "rimraf": "^2.5.2", "style-loader": "^0.13.1", "webfonts-generator": "^0.3.5", "webpack": "^2.1.0-beta.7", - "yargs": "^4.6.0", - "mocha": "^2.4.5" + "yargs": "^4.6.0" }, "devDependencies": { + "@r/build": "git://github.com/schwers/node-build#2bef8806fea324147cfd38bdf12834bff201932a", "babel-cli": "^6.7.5", "babel-eslint": "^6.0.4", "eslint": "^2.8.0", diff --git a/bin/buildBlueprints.js b/src/blueprints.js similarity index 97% rename from bin/buildBlueprints.js rename to src/blueprints.js index a1b94b9..9502e16 100755 --- a/bin/buildBlueprints.js +++ b/src/blueprints.js @@ -1,4 +1,3 @@ -#!/usr/bin/env node var _ = require('lodash'); var fs = require('fs'); var path = require('path'); @@ -12,6 +11,9 @@ var makeBuild = require('../lib/makeBuild').makeBuild; var configs = require('../lib/configs'); var getWebpackEntryForTest = require('../lib/getWebpackEntryForTest'); +var yargs = require('yargs'); +console.log("yargs?", yargs); + var argv = require('yargs') .alias('b', 'blueprintsPath') .describe('b', 'path to a raw-config via a node file with moduel.exports = config') @@ -46,6 +48,7 @@ function loadBuildsFromPath(configPath) { try { console.log('...loading bluerprints from', configPath) var builds = require(path.resolve(configPath)); + console.log('builds?', builds) if (!Array.isArray(builds)) { if (builds.extensions === true) { return { extensions: _.omit(builds, 'extensions') }; diff --git a/bin/buildWebfonts.js b/src/webfonts.js similarity index 100% rename from bin/buildWebfonts.js rename to src/webfonts.js From 2b78510c71f39b5157c664c0fc71bb708454044b Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 13:59:17 -0700 Subject: [PATCH 02/14] Get file names and both builds working --- bin/{name.js => blueprints.js} | 0 bin/webfonts.js | 89 ++++++++++++++++++++++++++++++++++ blueprints.config.js | 24 +++------ npm-debug.log | 69 +++++++++++--------------- package.json | 3 +- src/webfonts.js | 1 - 6 files changed, 125 insertions(+), 61 deletions(-) rename bin/{name.js => blueprints.js} (100%) create mode 100644 bin/webfonts.js diff --git a/bin/name.js b/bin/blueprints.js similarity index 100% rename from bin/name.js rename to bin/blueprints.js diff --git a/bin/webfonts.js b/bin/webfonts.js new file mode 100644 index 0000000..642ec57 --- /dev/null +++ b/bin/webfonts.js @@ -0,0 +1,89 @@ +#!/usr/bin/env node +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.l = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 3); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports) { + + module.exports = require("glob"); + +/***/ }, +/* 1 */ +/***/ function(module, exports) { + + module.exports = require("path"); + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + + module.exports = require("webfonts-generator"); + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + var glob = __webpack_require__(0); + var path = __webpack_require__(1); + var webfontsGenerator = __webpack_require__(2); + + var SRC = path.resolve('./assets/svg/*.svg'); + + glob(SRC, function (error, files) { + console.log('generating font from:\n', files); + + webfontsGenerator({ + files: files, + dest: path.resolve('./assets/fonts'), + fontName: 'rfont', + css: true, + cssDest: path.resolve('./assets/fonts/rfont.css'), + cssFontsUrl: '/fonts', + html: true, + types: ['svg', 'ttf', 'woff', 'eot'], + normalize: true + }); + }); + +/***/ } +/******/ ]); \ No newline at end of file diff --git a/blueprints.config.js b/blueprints.config.js index b2b4ea3..9dd8360 100644 --- a/blueprints.config.js +++ b/blueprints.config.js @@ -1,17 +1,16 @@ function makeConfig(name) { - var entryPath = './src/' + name + '.js'; - var outputName = name + '.js'; + var entry = {}; + entry[name] = './src/' + name + '.js'; return { name: name, webpack: { - entry: { name: entryPath }, + entry, output: { generator: 'simple', - dest: './bin', - name: outputName, + dest: './bin' }, - resovlve: { + resolve: { generator: 'npm-and-modules', paths: [ '' ], extensions: ['', '.js', '.json'], @@ -29,19 +28,8 @@ function makeConfig(name) { ], externals: 'node-modules', target: 'node', - node: { - process: false, - global: false, - __filename: false, - __dirname: false, - os: false, - fs: false, - console: false, - } }, }; } -console.log(makeConfig('blueprints')); - -module.exports = [ makeConfig('blueprints') ]; +module.exports = [ makeConfig('blueprints'), makeConfig('webfonts') ]; diff --git a/npm-debug.log b/npm-debug.log index 35e5a55..edf391b 100644 --- a/npm-debug.log +++ b/npm-debug.log @@ -5,44 +5,31 @@ 1 verbose cli 'watch' ] 2 info using npm@3.9.0 3 info using node@v5.5.0 -4 verbose run-script [ 'prewatch', 'watch', 'postwatch' ] -5 info lifecycle @r/build@0.6.2~prewatch: @r/build@0.6.2 -6 silly lifecycle @r/build@0.6.2~prewatch: no script for prewatch, continuing -7 info lifecycle @r/build@0.6.2~watch: @r/build@0.6.2 -8 verbose lifecycle @r/build@0.6.2~watch: unsafe-perm in lifecycle true -9 verbose lifecycle @r/build@0.6.2~watch: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/schwers/src/reddit/r/build/node_modules/.bin:/usr/local/Cellar/node/5.5.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin -10 verbose lifecycle @r/build@0.6.2~watch: CWD: /Users/schwers/src/reddit/r/build -11 silly lifecycle @r/build@0.6.2~watch: Args: [ '-c', 'blueprints -w' ] -12 silly lifecycle @r/build@0.6.2~watch: Returned: code: 1 signal: null -13 info lifecycle @r/build@0.6.2~watch: Failed to exec watch script -14 verbose stack Error: @r/build@0.6.2 watch: `blueprints -w` -14 verbose stack Exit status 1 -14 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:245:16) -14 verbose stack at emitTwo (events.js:100:13) -14 verbose stack at EventEmitter.emit (events.js:185:7) -14 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14) -14 verbose stack at emitTwo (events.js:100:13) -14 verbose stack at ChildProcess.emit (events.js:185:7) -14 verbose stack at maybeClose (internal/child_process.js:821:16) -14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) -15 verbose pkgid @r/build@0.6.2 -16 verbose cwd /Users/schwers/src/reddit/r/build -17 error Darwin 14.5.0 -18 error argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "run" "watch" -19 error node v5.5.0 -20 error npm v3.9.0 -21 error code ELIFECYCLE -22 error @r/build@0.6.2 watch: `blueprints -w` -22 error Exit status 1 -23 error Failed at the @r/build@0.6.2 watch script 'blueprints -w'. -23 error Make sure you have the latest version of node.js and npm installed. -23 error If you do, this is most likely a problem with the @r/build package, -23 error not with npm itself. -23 error Tell the author that this fails on your system: -23 error blueprints -w -23 error You can get information on how to open an issue for this project with: -23 error npm bugs @r/build -23 error Or if that isn't available, you can get their info via: -23 error npm owner ls @r/build -23 error There is likely additional logging output above. -24 verbose exit [ 1, true ] +4 verbose stack Error: Failed to parse json +4 verbose stack Trailing comma in object at 13:3 +4 verbose stack }, +4 verbose stack ^ +4 verbose stack at parseError (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:390:11) +4 verbose stack at parseJson (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:79:23) +4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:48:5 +4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16 +4 verbose stack at tryToString (fs.js:414:3) +4 verbose stack at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:401:12) +5 verbose cwd /Users/schwers/src/reddit/r/build +6 error Darwin 14.5.0 +7 error argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "run" "watch" +8 error node v5.5.0 +9 error npm v3.9.0 +10 error file /Users/schwers/src/reddit/r/build/package.json +11 error code EJSONPARSE +12 error Failed to parse json +12 error Trailing comma in object at 13:3 +12 error }, +12 error ^ +13 error File: /Users/schwers/src/reddit/r/build/package.json +14 error Failed to parse package.json data. +14 error package.json must be actual JSON, not just JavaScript. +14 error +14 error This is not a bug in npm. +14 error Tell the package author to fix their package.json file. JSON.parse +15 verbose exit [ 1, true ] diff --git a/package.json b/package.json index 373ce99..bab91b2 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "watch": "blueprints -w" }, "bin": { - "blueprints": "./bin/name.js" + "blueprints": "./bin/blueprints.js", + "webfonts": "./bin/webfonts.js" }, "repository": { "type": "git", diff --git a/src/webfonts.js b/src/webfonts.js index e6e0a48..01d4500 100755 --- a/src/webfonts.js +++ b/src/webfonts.js @@ -1,4 +1,3 @@ -#!/usr/bin/env node var glob = require('glob'); var path = require('path'); var webfontsGenerator = require('webfonts-generator'); From 1b6c1f98439cef15dcc536c886e131a3f5d47d85 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 14:00:54 -0700 Subject: [PATCH 03/14] Fix NodeExectuablePlugin.js to match dummy-build --- lib/generators/plugins/NodeExecutablePlugin.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/generators/plugins/NodeExecutablePlugin.js b/lib/generators/plugins/NodeExecutablePlugin.js index 2ea0891..6966fca 100644 --- a/lib/generators/plugins/NodeExecutablePlugin.js +++ b/lib/generators/plugins/NodeExecutablePlugin.js @@ -1,5 +1,7 @@ var webpack = require('webpack'); module.exports = new webpack.BannerPlugin({ - banner: 'require' -}) + banner: '#!/usr/bin/env node', + raw: true, + entryOnly: true, +}); From 20470c074ba2f7425c206e00cb786905c3351831 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 14:52:08 -0700 Subject: [PATCH 04/14] start converting generators to new esnext system --- bin/blueprints.js | 683 ++++++++++-------- bin/blueprints.js.map | 1 + bin/webfonts.js | 31 +- bin/webfonts.js.map | 1 + blueprints.config.js | 4 +- lib/generators/Generator.js | 11 + lib/generators/entry/index.js | 2 +- lib/generators/externals/index.js | 14 +- lib/generators/externals/loadNodeModules.js | 18 +- lib/generators/index.js | 2 - lib/generators/loaders/CSS.js | 8 + lib/generators/loaders/CSSLoader.js | 6 - .../{ESNextReactLoader.js => ESNextReact.js} | 8 +- lib/generators/loaders/IgnoreStyles.js | 6 + lib/generators/loaders/IgnoreStylesLoader.js | 4 - lib/generators/loaders/JSON.js | 6 + lib/generators/loaders/JSONLoader.js | 4 - lib/generators/loaders/Less.js | 8 + lib/generators/loaders/LessLoader.js | 6 - lib/generators/loaders/index.js | 40 +- lib/generators/output/index.js | 2 +- lib/generators/plugins/index.js | 2 +- lib/generators/postcss/index.js | 2 +- lib/generators/resolver/index.js | 2 +- lib/generators/tryToLoad.js | 45 ++ lib/generators/tryToLoadGenerator.js | 36 - lib/makeBuild.js | 3 +- lib/output/SimpleOutput.js | 9 - npm-debug.log | 35 - package.json | 1 + src/blueprints.js | 1 - 31 files changed, 526 insertions(+), 475 deletions(-) create mode 100644 bin/blueprints.js.map mode change 100644 => 100755 bin/webfonts.js create mode 100644 bin/webfonts.js.map create mode 100644 lib/generators/Generator.js create mode 100644 lib/generators/loaders/CSS.js delete mode 100644 lib/generators/loaders/CSSLoader.js rename lib/generators/loaders/{ESNextReactLoader.js => ESNextReact.js} (75%) create mode 100644 lib/generators/loaders/IgnoreStyles.js delete mode 100644 lib/generators/loaders/IgnoreStylesLoader.js create mode 100644 lib/generators/loaders/JSON.js delete mode 100644 lib/generators/loaders/JSONLoader.js create mode 100644 lib/generators/loaders/Less.js delete mode 100644 lib/generators/loaders/LessLoader.js create mode 100644 lib/generators/tryToLoad.js delete mode 100644 lib/generators/tryToLoadGenerator.js delete mode 100644 lib/output/SimpleOutput.js delete mode 100644 npm-debug.log diff --git a/bin/blueprints.js b/bin/blueprints.js index 95d55ac..e1cfd3b 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -2,43 +2,43 @@ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; - +/******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { - +/******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; - +/******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; - +/******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - +/******/ /******/ // Flag the module as loaded /******/ module.l = true; - +/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } - - +/******/ +/******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; - +/******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; - +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; - +/******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 49); +/******/ return __webpack_require__(__webpack_require__.s = 50); /******/ }) /************************************************************************/ /******/ ([ @@ -57,75 +57,114 @@ /* 2 */ /***/ function(module, exports, __webpack_require__) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(52); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - - var _ = __webpack_require__(0); - - function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + var applyGenerators = function applyGenerators(loaders, generator) { + generator.names.forEach(function (name) { + loaders[name] = generator.objectOrFunction; + }); + + return loaders; + }; + + var generatorLoader = function generatorLoader(thingKind, generators) { + var loaders = generators.reduce(function (prev, generator) { + return applyGenerators(_extends({}, prev), generator); + }, {}); + return function (loaderName) { + return tryToLoadGenerator(loaderName, loaders, thingKind); + }; + }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return generatorLoader; }}); + + var tryToLoadGenerator = function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { var parsed = parseNameOrObject(nameOrObject); if (!parsed) { return nameOrObject; } - + var thing = lookupTable[parsed.name]; if (!thing) { - throw new Error('Failed to resolve ' + nameOrObject + ' ' + thingKind); - return; + throw new Error('Failed to resolve ' + nameOrObject + ' - ' + thingKind); } + if (typeof thing === 'function') { return thing(parsed.options); } - + return thing; - } - - function parseNameOrObject(nameOrObject) { + }; + /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return tryToLoadGenerator; }}); + + var parseNameOrObject = function parseNameOrObject(nameOrObject) { if (typeof nameOrObject === 'string') { return { name: nameOrObject, options: {} }; } - + if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { var name = nameOrObject.generator; if (typeof name === 'string') { - return { name: name, options: _.omit(nameOrObject, 'name') }; + return { name: name, options: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(nameOrObject, 'name') }; } } - } - - module.exports = { - tryToLoadGenerator: tryToLoadGenerator }; /***/ }, /* 3 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var Generator = function Generator(nameOrNames, objectOrFunction) { + var names = nameOrNames; + if (!Array.isArray(names)) { + names = [names]; + } + + return { + names: names, + objectOrFunction: objectOrFunction + }; + }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return Generator; }}); + +/***/ }, +/* 4 */ /***/ function(module, exports) { module.exports = require("fs"); /***/ }, -/* 4 */ +/* 5 */ /***/ function(module, exports) { module.exports = require("path"); /***/ }, -/* 5 */ +/* 6 */ /***/ function(module, exports) { module.exports = require("yargs"); /***/ }, -/* 6 */ +/* 7 */ /***/ function(module, exports) { module.exports = require("extract-text-webpack-plugin"); /***/ }, -/* 7 */ +/* 8 */ /***/ function(module, exports, __webpack_require__) { - var path = __webpack_require__(4); - + var path = __webpack_require__(5); + module.exports = function (options) { return { path: path.resolve(options.dest), @@ -134,17 +173,17 @@ }; /***/ }, -/* 8 */ +/* 9 */ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - var path = __webpack_require__(4); - var SimpleResolver = __webpack_require__(9); - + var path = __webpack_require__(5); + var SimpleResolver = __webpack_require__(10); + function resolvePath(strPath) { return path.resolve(strPath); // path.resolve seems to have a binding issue; } - + module.exports = function (options) { return _.extend(SimpleResolver(options), { modules: (options.paths || []).map(resolvePath) @@ -152,7 +191,7 @@ }; /***/ }, -/* 9 */ +/* 10 */ /***/ function(module, exports) { module.exports = function (options) { @@ -162,18 +201,18 @@ }; /***/ }, -/* 10 */ +/* 11 */ /***/ function(module, exports, __webpack_require__) { /* eslint-disable */ - + var webpack = __webpack_require__(1); - var notifier = __webpack_require__(51); + var notifier = __webpack_require__(53); var _ = __webpack_require__(0); - var fs = __webpack_require__(3); - + var fs = __webpack_require__(4); + var nodeEnv = "production" || 'development'; - + module.exports = function (config, cb) { if (!cb) { cb = function cb() {}; @@ -182,7 +221,7 @@ exectuteBuild(build, cb); }); }; - + function exectuteBuild(build, cb) { var compiler = webpack(build.webpackConfig); if (build.watch) { @@ -201,18 +240,18 @@ }); } } - + function formatAsset(asset) { var name = asset.name; var size = asset.size; var sizeStr = size + " B"; - + if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; - + return name + " [" + sizeStr + "]"; } - + function outputBuild(type) { return function (err, stats) { if (!err) { @@ -221,9 +260,9 @@ chunks: false, version: false })); - + var s = stats.toJson(); - + if (s.errors && s.errors.length) { notifier.notify({ "title": type + " – ERROR!", @@ -240,27 +279,27 @@ } /***/ }, -/* 11 */ +/* 12 */ /***/ function(module, exports, __webpack_require__) { - var DefaultClientConfig = __webpack_require__(19); - var DefaultProductionClientConfig = __webpack_require__(20); - var DefaultServerConfig = __webpack_require__(22); - var DefaultProductionServerConfig = __webpack_require__(21); - var DefaultTestingConfig = __webpack_require__(23); - + var DefaultClientConfig = __webpack_require__(20); + var DefaultProductionClientConfig = __webpack_require__(21); + var DefaultServerConfig = __webpack_require__(23); + var DefaultProductionServerConfig = __webpack_require__(22); + var DefaultTestingConfig = __webpack_require__(24); + function getBuild(production, debugConfig, productionConfig) { return production ? productionConfig : debugConfig; } - + function getClientConfig(production) { return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig); } - + function getServerConfig(production) { return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig); } - + module.exports = { DefaultClientConfig: DefaultClientConfig, DefaultProductionClientConfig: DefaultProductionClientConfig, @@ -272,16 +311,16 @@ }; /***/ }, -/* 12 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { - var getTestFiles = __webpack_require__(48); - + var getTestFiles = __webpack_require__(49); + module.exports = function getWebpackEntryForTest(dir) { console.log(' Searching for tests in', process.cwd()); var files = getTestFiles(dir, '.test.'); console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); - + return files.reduce(function (prev, cur) { var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest'; prev[moduleName] = cur.path; @@ -290,23 +329,25 @@ }; /***/ }, -/* 13 */ +/* 14 */ /***/ function(module, exports, __webpack_require__) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_externals__ = __webpack_require__(26); var _ = __webpack_require__(0); - var generators = __webpack_require__(27); + var generators = __webpack_require__(28); var getLoader = generators.getLoader; var getPlugin = generators.getPlugin; var getOutput = generators.getOutput; var getResolver = generators.getResolver; var getEntry = generators.getEntry; var getPostCSS = generators.getPostCSS; - var getExternals = generators.getExternals; - + + function makeBuild(shortBuild) { return buildObject(shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name)); } - + function buildObject(buildName, watch, webpackConfig) { return { watch: watch, @@ -314,64 +355,64 @@ webpackConfig: webpackConfig }; } - + function parseWebpackConfig(shortHandConfig, buildName) { var webpackConfig = {}; - + Object.keys(shortHandConfig).forEach(function (key) { var obj = shortHandConfig[key]; - + if (key === 'loaders') { _.defaults(webpackConfig, { module: { loaders: [] } }); concatInPlace(webpackConfig.module.loaders, obj.map(getLoader)); } - + if (key === 'plugins') { webpackConfig.plugins = obj.map(getPlugin); } - + if (key === 'output') { webpackConfig.output = getOutput(obj); } - + if (key === 'resolve') { webpackConfig.resolve = getResolver(obj); } - + if (key === 'entry') { webpackConfig.entry = getEntry(obj, buildName); } - + if (key === 'postcss') { webpackConfig.postcss = obj.map(getPostCSS); } - + if (key === 'externals') { - webpackConfig.externals = getExternals(obj); + webpackConfig.externals = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_externals__["a"].bind()(obj); } }); - + return _.extend(webpackConfig, _.omit(shortHandConfig, Object.keys(webpackConfig).concat('loaders'))); } - + function concatInPlace(dest, source) { source.forEach(function (thing) { dest.push(thing); }); } - + function loadNameOrUseSource(thing, load) { if (typeof thing === 'string') { return load(thing); } - + return thing; } - + function mapLoadNameOrUseSource(array, loader) { return array.map(loader); } - + module.exports = { makeBuild: makeBuild, buildObject: buildObject, @@ -380,7 +421,7 @@ }; /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports) { function webpackEmptyContext(req) { @@ -389,35 +430,35 @@ webpackEmptyContext.keys = function() { return []; }; webpackEmptyContext.resolve = webpackEmptyContext; module.exports = webpackEmptyContext; - webpackEmptyContext.id = 14; + webpackEmptyContext.id = 15; /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports) { module.exports = require("colors"); /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports) { module.exports = require("debug"); /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports) { module.exports = require("mocha"); /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports) { module.exports = require("rimraf"); /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports) { module.exports = { @@ -443,7 +484,7 @@ }; /***/ }, -/* 20 */ +/* 21 */ /***/ function(module, exports) { module.exports = { @@ -469,7 +510,7 @@ }; /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports) { module.exports = { @@ -503,7 +544,7 @@ }; /***/ }, -/* 22 */ +/* 23 */ /***/ function(module, exports) { module.exports = { @@ -538,11 +579,11 @@ }; /***/ }, -/* 23 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - + module.exports = { name: 'Test', webpack: { @@ -566,17 +607,19 @@ }; /***/ }, -/* 24 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - - var path = __webpack_require__(4); + + var path = __webpack_require__(5); var _ = __webpack_require__(0); - var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; - + + var entryGenerators = {}; - + function getEntry(pathOrObject, buildName) { // for now takes the path to the file, and the build name and makes // the entry point object. in the future we can do things like auto traverers @@ -586,120 +629,133 @@ if ((typeof pathOrObject === 'undefined' ? 'undefined' : _typeof(pathOrObject)) === 'object') { return pathOrObject; } - + var entryConfig = {}; entryConfig[buildName] = path.resolve(pathOrObject); return entryConfig; }; - + module.exports = { getEntry: getEntry, entryGenerators: entryGenerators }; /***/ }, -/* 25 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadNodeModules__ = __webpack_require__(27); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - - var loadNodeModules = __webpack_require__(26); - + + + var loaderName = 'node-modules'; - - function getExternals(externals) { + + var getExternals = function getExternals(externals) { if (typeof externals === 'string') { if (externals === loaderName) { - return loadNodeModules(); - } else { - throw new Error('invalid externals loader name, did you mean: ' + loaderName + '?'); + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(); } + + throw new Error('Invalid externals loader name, did you mean: ' + loaderName + ' ?'); } - + if ((typeof externals === 'undefined' ? 'undefined' : _typeof(externals)) === 'object') { if (externals.generator === loaderName) { - return loadNodeModules(externals.additional); + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(externals.additional); } - + return externals; } - } - - module.exports = { - getExternals: getExternals }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getExternals; }}); /***/ }, -/* 26 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { - var fs = __webpack_require__(3); - - function prependCommonjs(modules, name) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); + + + var prependCommonjs = function prependCommonjs(modules, name) { modules[name] = 'commonjs ' + name; return modules; - } - + }; + var lodashSubmodules = ['array', 'collection', 'date', 'function', 'lang', 'math', 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods'].map(function (name) { return 'lodash/' + name; }); - - module.exports = function (additional) { + + var loadNodeModules = function loadNodeModules(additional) { var nodeModules = {}; - - fs.readdirSync('node_modules').filter(function (x) { + + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_fs___default.a.readdirSync('node_modules').filter(function (x) { return ['.bin'].indexOf(x) === -1; }).reduce(prependCommonjs, nodeModules); - + if (additional) { additional.reduce(prependCommonjs, nodeModules); } - + if (nodeModules.lodash) { lodashSubmodules.reduce(prependCommonjs, nodeModules); } - + return nodeModules; }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return loadNodeModules; }}); /***/ }, -/* 27 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { - var getLoader = __webpack_require__(33).getLoader; - var getPlugin = __webpack_require__(43).getPlugin; - var getOutput = __webpack_require__(35).getOutput; - var getResolver = __webpack_require__(47).getResolver; - var getEntry = __webpack_require__(24).getEntry; - var getExternals = __webpack_require__(25).getExternals; - var getPostCSS = __webpack_require__(45).getPostCSS; - + var getLoader = __webpack_require__(34).getLoader; + var getPlugin = __webpack_require__(44).getPlugin; + var getOutput = __webpack_require__(36).getOutput; + var getResolver = __webpack_require__(48).getResolver; + var getEntry = __webpack_require__(25).getEntry; + var getPostCSS = __webpack_require__(46).getPostCSS; + module.exports = { getLoader: getLoader, getPlugin: getPlugin, getOutput: getOutput, getResolver: getResolver, getEntry: getEntry, - getExternals: getExternals, getPostCSS: getPostCSS }; /***/ }, -/* 28 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { - var ExtractTextPlugin = __webpack_require__(6); - - module.exports = { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(3); + + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('css', { test: /\.css$/, - loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader') - }; + loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader') + }); /***/ }, -/* 29 */ -/***/ function(module, exports) { +/* 30 */ +/***/ function(module, exports, __webpack_require__) { - module.exports = { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(3); + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()(['esnextreact', 'ESNextReact'], { test: /\.es6\.js$|\.js$|\.jsx$/, exclude: /node_modules/, loader: 'babel', @@ -707,74 +763,81 @@ presets: ['es2015-native-modules', 'stage-2', 'react'], plugins: ['transform-class-properties', 'transform-react-constant-elements', 'transform-react-inline-elements', 'lodash'] } - }; + }); /***/ }, -/* 30 */ -/***/ function(module, exports) { +/* 31 */ +/***/ function(module, exports, __webpack_require__) { - module.exports = { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(3); + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('ignore-styles', { test: /\.css$|\.less$/, loader: 'ignore-loader' - }; + }); /***/ }, -/* 31 */ -/***/ function(module, exports) { +/* 32 */ +/***/ function(module, exports, __webpack_require__) { - module.exports = { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(3); + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('json', { test: /\.json$/, loader: 'json-loader' - }; + }); /***/ }, -/* 32 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { - var ExtractTextPlugin = __webpack_require__(6); - - module.exports = { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(3); + + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('less', { test: /\.less$/, - loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader') - }; + loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader!less-loader') + }); /***/ }, -/* 33 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { - var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; - - var ESNextReactLoader = __webpack_require__(29); - var JSONLoader = __webpack_require__(31); - var CSSLoader = __webpack_require__(28); - var LessLoader = __webpack_require__(32); - var IgnoreStylesLoader = __webpack_require__(30); - - var loaders = { - 'esnextreact': ESNextReactLoader, - 'ESNextReact': ESNextReactLoader, - 'json': JSONLoader, - 'css': CSSLoader, - 'less': LessLoader, - 'ignore-styles': IgnoreStylesLoader - }; - - var getLoader = function getLoader(loaderName) { - return tryToLoadGenerator(loaderName, loaders, 'loader'); - }; - - module.exports = { - loaders: loaders, - getLoader: getLoader - }; + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CSS__ = __webpack_require__(29); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ESNextReact__ = __webpack_require__(30); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__ = __webpack_require__(31); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__JSON__ = __webpack_require__(32); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Less__ = __webpack_require__(33); + + + + + + + + + var getLoader = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('loader', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__CSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__ESNextReact__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__JSON__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__Less__["a"]]); + /* harmony export */ Object.defineProperty(exports, "getLoader", {configurable: false, enumerable: true, get: function() { return getLoader; }}); /***/ }, -/* 34 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - var SimpleOutput = __webpack_require__(7); - + var SimpleOutput = __webpack_require__(8); + module.exports = function (options) { return _.extend(SimpleOutput(options), { library: options.libraryName || '[name].js', @@ -783,15 +846,17 @@ }; /***/ }, -/* 35 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); var _ = __webpack_require__(0); - var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; - - var SimpleOutput = __webpack_require__(7); - var LibraryOutput = __webpack_require__(34); - + + + var SimpleOutput = __webpack_require__(8); + var LibraryOutput = __webpack_require__(35); + function libraryOfTarget(target) { return function (options) { return LibraryOutput(_.extend(options, { @@ -799,7 +864,7 @@ })); }; } - + var outputs = { simple: SimpleOutput, library: LibraryOutput, @@ -809,30 +874,30 @@ amd: libraryOfTarget('amd'), umd: libraryOfTarget('umd') }; - + var getOutput = function getOutput(outputName) { - return tryToLoadGenerator(outputName, outputs, 'output'); + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(outputName, outputs, 'output'); }; - + module.exports = { outputs: outputs, getOutput: getOutput }; /***/ }, -/* 36 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { var webpack = __webpack_require__(1); - + module.exports = new webpack.NoErrorsPlugin(); /***/ }, -/* 37 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { var webpack = __webpack_require__(1); - + module.exports = new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', minChunks: Infinity, @@ -840,30 +905,30 @@ }); /***/ }, -/* 38 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { var webpack = __webpack_require__(1); - + module.exports = new webpack.LoaderOptionsPlugin({ minimize: true, debug: false }); /***/ }, -/* 39 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { - var ExtractTextPlugin = __webpack_require__(6); - + var ExtractTextPlugin = __webpack_require__(7); + module.exports = new ExtractTextPlugin('[name].css'); /***/ }, -/* 40 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { var webpack = __webpack_require__(1); - + module.exports = new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false @@ -875,11 +940,11 @@ }); /***/ }, -/* 41 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { var webpack = __webpack_require__(1); - + module.exports = new webpack.BannerPlugin({ banner: 'require("source-map-support").install();', raw: true, @@ -887,14 +952,14 @@ }); /***/ }, -/* 42 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { var webpack = __webpack_require__(1); - + var nodeEnv = "production" || 'production'; var env = "server" || 'server'; - + module.exports = function (options) { return new webpack.DefinePlugin({ 'process.env': { @@ -905,18 +970,20 @@ }; /***/ }, -/* 43 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { - var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; - var AbortIfErrorsPlugin = __webpack_require__(36); - var BundleCommonChunksPlugin = __webpack_require__(37); - var EnableProductionLoadersPlugin = __webpack_require__(38); - var ExtractCSSPlugin = __webpack_require__(39); - var MinifyAndTreeShakePlugin = __webpack_require__(40); - var NodeLoadSourceMapsPlugin = __webpack_require__(41); - var SetNodeEnvironmentPlugin = __webpack_require__(42); - + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); + + var AbortIfErrorsPlugin = __webpack_require__(37); + var BundleCommonChunksPlugin = __webpack_require__(38); + var EnableProductionLoadersPlugin = __webpack_require__(39); + var ExtractCSSPlugin = __webpack_require__(40); + var MinifyAndTreeShakePlugin = __webpack_require__(41); + var NodeLoadSourceMapsPlugin = __webpack_require__(42); + var SetNodeEnvironmentPlugin = __webpack_require__(43); + var plugins = { 'abort-if-errors': AbortIfErrorsPlugin, 'bundle-common': BundleCommonChunksPlugin, @@ -926,54 +993,56 @@ 'node-load-sourcemaps': NodeLoadSourceMapsPlugin, 'set-node-env': SetNodeEnvironmentPlugin }; - + function getPlugin(pluginName) { - return tryToLoadGenerator(pluginName, plugins, 'plugin'); + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(pluginName, plugins, 'plugin'); } - + module.exports = { plugins: plugins, getPlugin: getPlugin }; /***/ }, -/* 44 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { - var autoprefixer = __webpack_require__(50); - + var autoprefixer = __webpack_require__(51); + module.exports = function (options) { return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions'] }); }; /***/ }, -/* 45 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { - var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; - var AutoprefixerPostCSS = __webpack_require__(44); - + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); + + var AutoprefixerPostCSS = __webpack_require__(45); + var postCSSHooks = { 'autoprefixer-custom': AutoprefixerPostCSS, 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }) }; - + var getPostCSS = function getPostCSS(postCSSHookName) { - return tryToLoadGenerator(postCSSHookName, postCSSHooks, 'postcsshooks'); + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(postCSSHookName, postCSSHooks, 'postcsshooks'); }; - + module.exports = { postCSSHooks: postCSSHooks, getPostCSS: getPostCSS }; /***/ }, -/* 46 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - var ModulesResolver = __webpack_require__(8); - + var ModulesResolver = __webpack_require__(9); + module.exports = function (options) { var result = ModulesResolver(options); result.modules = result.modules.concat('node_modules'); @@ -981,37 +1050,39 @@ }; /***/ }, -/* 47 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { - var tryToLoadGenerator = __webpack_require__(2).tryToLoadGenerator; - - var SimpleResolver = __webpack_require__(9); - var ModulesResolver = __webpack_require__(8); - var NPMAndModulesResolver = __webpack_require__(46); - + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); + + + var SimpleResolver = __webpack_require__(10); + var ModulesResolver = __webpack_require__(9); + var NPMAndModulesResolver = __webpack_require__(47); + var resolvers = { 'simple': SimpleResolver, 'modules': ModulesResolver, 'npm-and-modules': NPMAndModulesResolver }; - + function getResolver(resolverName) { - return tryToLoadGenerator(resolverName, resolvers, 'resolver'); + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(resolverName, resolvers, 'resolver'); } - + module.exports = { resolvers: resolvers, getResolver: getResolver }; /***/ }, -/* 48 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - var fs = __webpack_require__(3); - + var fs = __webpack_require__(4); + module.exports = function getTestFiles(dir, ext) { if (dir.indexOf('node_modules') > -1) { return; @@ -1019,17 +1090,17 @@ if (dir.indexOf('.git') > -1) { return; } - + var files = []; try { files = fs.readdirSync(dir); } catch (e) { files = []; } - + return files.map(function (file) { var path = dir + file; - + try { var stats = fs.statSync(path); if (stats.isDirectory()) { @@ -1054,30 +1125,29 @@ }; /***/ }, -/* 49 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - var fs = __webpack_require__(3); - var path = __webpack_require__(4); - var debug = __webpack_require__(16)('blueprints'); - var Mocha = __webpack_require__(17); - var colors = __webpack_require__(15); - var rimraf = __webpack_require__(18); - - var build = __webpack_require__(10); - var makeBuild = __webpack_require__(13).makeBuild; - var configs = __webpack_require__(11); - var getWebpackEntryForTest = __webpack_require__(12); - - var yargs = __webpack_require__(5); - console.log("yargs?", yargs); - - var argv = __webpack_require__(5).alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; - + var fs = __webpack_require__(4); + var path = __webpack_require__(5); + var debug = __webpack_require__(17)('blueprints'); + var Mocha = __webpack_require__(18); + var colors = __webpack_require__(16); + var rimraf = __webpack_require__(19); + + var build = __webpack_require__(11); + var makeBuild = __webpack_require__(14).makeBuild; + var configs = __webpack_require__(12); + var getWebpackEntryForTest = __webpack_require__(13); + + var yargs = __webpack_require__(6); + + var argv = __webpack_require__(6).alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; + console.log('...Reading Blueprints', argv.blueprintsPath); console.log('...cwd', process.cwd()); - + function loadBuildsFromPath(configPath) { try { console.log('...loading bluerprints from', configPath); @@ -1089,14 +1159,14 @@ } builds = [builds]; } - + return { builds: builds }; } catch (e) { debug(e); return {}; } } - + function applyExtensions(builds, extensions) { var ext = extensions || {}; console.log('...applying extensions', extensions); @@ -1104,14 +1174,14 @@ return _.merge(build, ext); }); } - + function makeConfig(builds, extensions) { return { builds: applyExtensions(builds, extensions).map(makeBuild) }; } - + var builds = []; var extensions = {}; - + if (argv.blueprintsPath && !argv.ignoreBlueprints) { var blueprints = loadBuildsFromPath(argv.blueprintsPath); if (blueprints.extensions) { @@ -1120,7 +1190,7 @@ builds = blueprints.builds; } } - + function loadDefaultConfigs() { console.log('...using default configs'); if (argv.runTest) { @@ -1138,25 +1208,25 @@ builds = [configs.getClientConfig(argv.production), configs.getServerConfig(argv.production)]; } } - + if (!builds.length) { loadDefaultConfigs(); } - + if (argv.watch) { extensions.watch = true; } - + build(makeConfig(builds, extensions), function (stats) { if (stats.errors && stats.errors.length > 0 && !argv.watch) { console.log(colors.red('ERROR IN BUILD. Aborting.')); - + process.exit(1); } - + if (argv.runTest) { console.log(colors.magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); - + var m = new Mocha(); stats.assets.forEach(function (asset) { var path = './.test/' + asset.name; @@ -1169,16 +1239,23 @@ }); /***/ }, -/* 50 */ +/* 51 */ /***/ function(module, exports) { module.exports = require("autoprefixer"); /***/ }, -/* 51 */ +/* 52 */ +/***/ function(module, exports) { + + module.exports = require("lodash/object"); + +/***/ }, +/* 53 */ /***/ function(module, exports) { module.exports = require("node-notifier"); /***/ } -/******/ ]); \ No newline at end of file +/******/ ]); +//# sourceMappingURL=blueprints.js.map \ No newline at end of file diff --git a/bin/blueprints.js.map b/bin/blueprints.js.map new file mode 100644 index 0000000..4adada2 --- /dev/null +++ b/bin/blueprints.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap dd92b9d32cc48b271fbb","webpack:///external \"lodash\"","webpack:///external \"webpack\"","webpack:///./lib/generators/tryToLoad.js","webpack:///./lib/generators/Generator.js","webpack:///external \"fs\"","webpack:///external \"path\"","webpack:///external \"yargs\"","webpack:///external \"extract-text-webpack-plugin\"","webpack:///./lib/generators/output/SimpleOutput.js","webpack:///./lib/generators/resolver/ModulesResolver.js","webpack:///./lib/generators/resolver/SimpleResolver.js","webpack:///./lib/build.js","webpack:///./lib/configs/index.js","webpack:///./lib/getWebpackEntryForTest.js","webpack:///./lib/makeBuild.js","webpack:///./src","webpack:///external \"colors\"","webpack:///external \"debug\"","webpack:///external \"mocha\"","webpack:///external \"rimraf\"","webpack:///./lib/configs/DefaultClientConfig.js","webpack:///./lib/configs/DefaultProductionClientConfig.js","webpack:///./lib/configs/DefaultProductionServerConfig.js","webpack:///./lib/configs/DefaultServerConfig.js","webpack:///./lib/configs/DefaultTestingConfig.js","webpack:///./lib/generators/entry/index.js","webpack:///./lib/generators/externals/index.js","webpack:///./lib/generators/externals/loadNodeModules.js","webpack:///./lib/generators/index.js","webpack:///./lib/generators/loaders/CSS.js","webpack:///./lib/generators/loaders/ESNextReact.js","webpack:///./lib/generators/loaders/IgnoreStyles.js","webpack:///./lib/generators/loaders/JSON.js","webpack:///./lib/generators/loaders/Less.js","webpack:///./lib/generators/loaders/index.js","webpack:///./lib/generators/output/LibraryOutput.js","webpack:///./lib/generators/output/index.js","webpack:///./lib/generators/plugins/AbortIfErrorsPlugin.js","webpack:///./lib/generators/plugins/BundleCommonChunksPlugin.js","webpack:///./lib/generators/plugins/EnableProductionLoadersPlugin.js","webpack:///./lib/generators/plugins/ExtractCSSPlugin.js","webpack:///./lib/generators/plugins/MinifyAndTreeShakePlugin.js","webpack:///./lib/generators/plugins/NodeLoadSourceMapsPlugin.js","webpack:///./lib/generators/plugins/SetNodeEnvironmentPlugin.js","webpack:///./lib/generators/plugins/index.js","webpack:///./lib/generators/postcss/AutoprexiferPostCSS.js","webpack:///./lib/generators/postcss/index.js","webpack:///./lib/generators/resolver/NPMAndModulesResolver.js","webpack:///./lib/generators/resolver/index.js","webpack:///./lib/getTestFiles.js","webpack:///./src/blueprints.js","webpack:///external \"autoprefixer\"","webpack:///external \"lodash/object\"","webpack:///external \"node-notifier\""],"names":[],"mappings":"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","file":"blueprints.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 50);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap dd92b9d32cc48b271fbb\n **/","module.exports = require(\"lodash\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"lodash\"\n ** module id = 0\n ** module chunks = 0\n **/","module.exports = require(\"webpack\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"webpack\"\n ** module id = 1\n ** module chunks = 0\n **/","import { omit } from 'lodash/object';\n\nconst applyGenerators = (loaders, generator) => {\n generator.names.forEach(name => {\n loaders[name] = generator.objectOrFunction;\n });\n\n return loaders;\n};\n\nexport const generatorLoader = (thingKind, generators) => {\n const loaders = generators.reduce((prev, generator) => applyGenerators({...prev}, generator), {});\n return (loaderName) => tryToLoadGenerator(loaderName, loaders, thingKind);\n};\n\nexport const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => {\n const parsed = parseNameOrObject(nameOrObject);\n if (!parsed) {\n return nameOrObject;\n }\n\n const thing = lookupTable[parsed.name];\n if (!thing) {\n throw new Error(`Failed to resolve ${nameOrObject} - ${thingKind}`);\n }\n\n if (typeof thing === 'function') {\n return thing(parsed.options);\n }\n\n return thing;\n};\n\nconst parseNameOrObject = (nameOrObject) => {\n if (typeof nameOrObject === 'string') {\n return { name: nameOrObject, options: {} };\n }\n\n if (typeof nameOrObject === 'object') {\n const name = nameOrObject.generator;\n if (typeof name === 'string') {\n return { name, options: omit(nameOrObject, 'name') };\n }\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/tryToLoad.js\n **/","export const Generator = (nameOrNames, objectOrFunction) => {\n let names =nameOrNames;\n if (!Array.isArray(names)) {\n names = [ names ];\n }\n\n return {\n names,\n objectOrFunction,\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/Generator.js\n **/","module.exports = require(\"fs\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"fs\"\n ** module id = 4\n ** module chunks = 0\n **/","module.exports = require(\"path\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"path\"\n ** module id = 5\n ** module chunks = 0\n **/","module.exports = require(\"yargs\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"yargs\"\n ** module id = 6\n ** module chunks = 0\n **/","module.exports = require(\"extract-text-webpack-plugin\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"extract-text-webpack-plugin\"\n ** module id = 7\n ** module chunks = 0\n **/","var path = require('path');\n\nmodule.exports = function(options){\n return {\n path: path.resolve(options.dest),\n filename: options.name || '[name].js',\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/output/SimpleOutput.js\n **/","var _ = require('lodash');\nvar path = require('path');\nvar SimpleResolver = require('./SimpleResolver');\n\nfunction resolvePath(strPath) {\n return path.resolve(strPath); // path.resolve seems to have a binding issue;\n}\n\nmodule.exports = function(options){\n return _.extend(SimpleResolver(options), {\n modules: (options.paths || []).map(resolvePath),\n });\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/ModulesResolver.js\n **/","module.exports = function(options) {\n return {\n extensions: options.extensions,\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/SimpleResolver.js\n **/","/* eslint-disable */\n\nvar webpack = require('webpack');\nvar notifier = require('node-notifier');\nvar _ = require('lodash');\nvar fs = require('fs');\n\nconst nodeEnv = process.env.NODE_ENV || 'development';\n\nmodule.exports = function(config, cb) {\n if (!cb) { cb = function() {}; }\n config.builds.forEach(function(build) {\n exectuteBuild(build, cb);\n });\n}\n\nfunction exectuteBuild(build, cb) {\n var compiler = webpack(build.webpackConfig);\n if (build.watch) {\n compiler.watch({}, function(err, stats) {\n outputBuild(build.buildName)(err, stats);\n cb(stats.toJson());\n });\n } else {\n compiler.run(function(err, stats) {\n console.log(stats.toString({\n colors: !build.disableColors,\n chunks: false,\n version: false,\n }));\n cb(stats.toJson());\n });\n }\n}\n\nfunction formatAsset(asset) {\n var name = asset.name;\n var size = asset.size;\n var sizeStr = size + \" B\";\n\n if (size > 1000) sizeStr = Math.ceil(size / 1000) + \" kB\";\n if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + \" MB\";\n\n return name + \" [\" + sizeStr + \"]\";\n}\n\nfunction outputBuild(type) {\n return function(err, stats) {\n if (!err) {\n console.log(stats.toString({\n colors: true,\n chunks: false,\n version: false,\n }));\n\n var s = stats.toJson();\n\n if (s.errors && s.errors.length) {\n notifier.notify({\n \"title\": type + \" – ERROR!\",\n \"message\": \"Check the console for errors\",\n });\n } else {\n notifier.notify({\n \"title\": type + \" – Build complete\",\n \"message\": s.assets.map(formatAsset).join(\"\\n\"),\n });\n }\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/build.js\n **/","var DefaultClientConfig = require('./DefaultClientConfig');\nvar DefaultProductionClientConfig = require('./DefaultProductionClientConfig');\nvar DefaultServerConfig = require('./DefaultServerConfig');\nvar DefaultProductionServerConfig = require('./DefaultProductionServerConfig');\nvar DefaultTestingConfig = require('./DefaultTestingConfig');\n\nfunction getBuild(production, debugConfig, productionConfig) {\n return production ? productionConfig : debugConfig;\n}\n\nfunction getClientConfig(production) {\n return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig);\n}\n\nfunction getServerConfig(production) {\n return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig);\n}\n\nmodule.exports = {\n DefaultClientConfig,\n DefaultProductionClientConfig,\n DefaultServerConfig,\n DefaultProductionServerConfig,\n DefaultTestingConfig,\n getClientConfig,\n getServerConfig,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/index.js\n **/","var getTestFiles = require('./getTestFiles');\n\nmodule.exports = function getWebpackEntryForTest(dir) {\n console.log(' Searching for tests in', process.cwd());\n var files = getTestFiles(dir, '.test.');\n console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : ''));\n\n return files.reduce(function(prev, cur) {\n var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest';\n prev[moduleName] = cur.path;\n return prev;\n }, {});\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/getWebpackEntryForTest.js\n **/","var _ = require('lodash');\nvar generators = require('./generators');\nvar getLoader = generators.getLoader;\nvar getPlugin = generators.getPlugin;\nvar getOutput = generators.getOutput;\nvar getResolver = generators.getResolver;\nvar getEntry = generators.getEntry;\nvar getPostCSS = generators.getPostCSS;\nimport { getExternals } from 'lib/generators/externals';\n\nfunction makeBuild(shortBuild) {\n return buildObject(shortBuild.name,\n shortBuild.watch,\n parseWebpackConfig(shortBuild.webpack, shortBuild.name))\n}\n\nfunction buildObject(buildName, watch, webpackConfig) {\n return {\n watch,\n buildName,\n webpackConfig,\n };\n}\n\nfunction parseWebpackConfig(shortHandConfig, buildName) {\n var webpackConfig = {};\n\n Object.keys(shortHandConfig).forEach(function(key) {\n var obj = shortHandConfig[key];\n\n if (key === 'loaders') {\n _.defaults(webpackConfig, { module: { loaders: [] }});\n concatInPlace(\n webpackConfig.module.loaders,\n obj.map(getLoader)\n );\n }\n\n if (key === 'plugins') {\n webpackConfig.plugins = obj.map(getPlugin);\n }\n\n if (key === 'output') {\n webpackConfig.output = getOutput(obj);\n }\n\n if (key === 'resolve') {\n webpackConfig.resolve = getResolver(obj);\n }\n\n if (key === 'entry') {\n webpackConfig.entry = getEntry(obj, buildName);\n }\n\n if (key === 'postcss') {\n webpackConfig.postcss = obj.map(getPostCSS);\n }\n\n if (key === 'externals') {\n webpackConfig.externals = getExternals(obj);\n }\n });\n\n return _.extend(webpackConfig, _.omit(shortHandConfig,\n Object.keys(webpackConfig).concat('loaders')));\n}\n\nfunction concatInPlace(dest, source) {\n source.forEach(function(thing) { dest.push(thing) });\n}\n\nfunction loadNameOrUseSource(thing, load) {\n if (typeof thing === 'string') {\n return load(thing);\n }\n\n return thing;\n}\n\nfunction mapLoadNameOrUseSource(array, loader) {\n return array.map(loader);\n}\n\nmodule.exports = {\n makeBuild,\n buildObject,\n parseWebpackConfig,\n loadNameOrUseSource,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/makeBuild.js\n **/","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 15;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src\n ** module id = 15\n ** module chunks = 0\n **/","module.exports = require(\"colors\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"colors\"\n ** module id = 16\n ** module chunks = 0\n **/","module.exports = require(\"debug\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"debug\"\n ** module id = 17\n ** module chunks = 0\n **/","module.exports = require(\"mocha\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"mocha\"\n ** module id = 18\n ** module chunks = 0\n **/","module.exports = require(\"rimraf\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"rimraf\"\n ** module id = 19\n ** module chunks = 0\n **/","module.exports = {\n name: 'Client',\n webpack: {\n devtool: 'source-map',\n entry: './src/Client.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json'],\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'css',\n 'less',\n ],\n plugins: [\n 'extract-css',\n 'abort-if-errors',\n {\n generator: 'set-node-env',\n env: 'client',\n },\n ],\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultClientConfig.js\n **/","module.exports = {\n name: 'ProductionClient',\n webpack: {\n devtool: 'source-map',\n entry: './src/Client.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json']\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'css',\n 'less',\n ],\n plugins: [\n 'extract-css',\n {\n generator: 'set-node-env',\n env: 'client',\n },\n 'production-loaders',\n 'minify-and-treeshake',\n 'abort-if-errors',\n ],\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultProductionClientConfig.js\n **/","module.exports = {\n name: 'ProductionServer',\n webpack: {\n devtool: 'source-map',\n entry: './src/Server.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n externals: {\n generator: 'node-modules',\n additional: ['os'],\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json']\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'ignore-styles',\n ],\n plugins: [\n 'production-loaders',\n 'minify-and-treeshake',\n 'abort-if-errors',\n 'node-load-sourcemaps',\n ],\n node: {\n Buffer: false,\n process: false,\n global: false,\n __filename: true,\n __dirname: true,\n },\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultProductionServerConfig.js\n **/","module.exports = {\n name: 'Server',\n webpack: {\n devtool: 'source-map',\n entry: './src/Server.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n externals: {\n generator: 'node-modules',\n additional: ['os'],\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json']\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'ignore-styles',\n ],\n plugins: [\n 'abort-if-errors',\n 'node-load-sourcemaps',\n ],\n node: {\n Buffer: false,\n process: false,\n global: false,\n __filename: true,\n __dirname: true,\n os: false,\n },\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultServerConfig.js\n **/","var _ = require('lodash');\n\nmodule.exports = {\n name: 'Test',\n webpack: {\n devtool: 'source-map',\n output: {\n path: './.test',\n filename: '[name]',\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json'],\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'ignore-styles',\n ],\n plugins: [\n 'extract-css',\n 'abort-if-errors',\n ],\n externals: {\n generator: 'node-modules',\n additional: ['@r/platform/createTest'],\n },\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultTestingConfig.js\n **/","var path = require('path');\nvar _ = require('lodash');\nimport { tryToLoadGenerator } from 'lib/generators/tryToLoad';\n\nvar entryGenerators = {\n};\n\nfunction getEntry(pathOrObject, buildName) {\n // for now takes the path to the file, and the build name and makes\n // the entry point object. in the future we can do things like auto traverers\n // the module paths you're resolving and generate tree-shaking-less umd ready builds\n // but if everything internal is using the build project its a little pointless\n // return tryToLoadGenerator(entryName, entryGenerators, 'entry');\n if (typeof pathOrObject === 'object') {\n return pathOrObject;\n }\n\n var entryConfig = {};\n entryConfig[buildName] = path.resolve(pathOrObject);\n return entryConfig;\n};\n\nmodule.exports = {\n getEntry,\n entryGenerators,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/entry/index.js\n **/","import { loadNodeModules } from './loadNodeModules';\n\nconst loaderName = 'node-modules';\n\nexport const getExternals = externals => {\n if (typeof externals === 'string') {\n if (externals === loaderName) {\n return loadNodeModules();\n }\n\n throw new Error(`Invalid externals loader name, did you mean: ${loaderName} ?`);\n }\n\n if (typeof externals === 'object') {\n if (externals.generator === loaderName) {\n return loadNodeModules(externals.additional);\n }\n\n return externals;\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/externals/index.js\n **/","import fs from 'fs';\n\nconst prependCommonjs = (modules, name) => {\n modules[name] = `commonjs ${name}`;\n return modules;\n};\n\nconst lodashSubmodules = [\n 'array', 'collection', 'date', 'function', 'lang', 'math',\n 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods',\n].map(name => `lodash/${name}`);\n\nexport const loadNodeModules = additional => {\n const nodeModules = {};\n\n fs.readdirSync('node_modules')\n .filter(function(x) { return ['.bin'].indexOf(x) === -1; })\n .reduce(prependCommonjs, nodeModules);\n\n if (additional) {\n additional.reduce(prependCommonjs, nodeModules);\n }\n\n if (nodeModules.lodash) {\n lodashSubmodules.reduce(prependCommonjs, nodeModules);\n }\n\n return nodeModules;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/externals/loadNodeModules.js\n **/","var getLoader = require('./loaders').getLoader;\nvar getPlugin = require('./plugins').getPlugin;\nvar getOutput = require('./output').getOutput;\nvar getResolver = require('./resolver').getResolver;\nvar getEntry = require('./entry').getEntry;\nvar getPostCSS = require('./postcss').getPostCSS;\n\nmodule.exports = {\n getLoader,\n getPlugin,\n getOutput,\n getResolver,\n getEntry,\n getPostCSS,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/index.js\n **/","import ExtractTextPlugin from 'extract-text-webpack-plugin';\n\nimport { Generator } from 'lib/generators/Generator';\n\nexport default Generator('css', {\n test: /\\.css$/,\n loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader'),\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/CSS.js\n **/","import { Generator } from 'lib/generators/Generator';\n\nexport default Generator(['esnextreact', 'ESNextReact'], {\n test: /\\.es6\\.js$|\\.js$|\\.jsx$/,\n exclude: /node_modules/,\n loader: 'babel',\n query: {\n presets: [\n 'es2015-native-modules',\n 'stage-2',\n 'react',\n ],\n plugins: [\n 'transform-class-properties',\n 'transform-react-constant-elements',\n 'transform-react-inline-elements',\n 'lodash', // fixes the babel budnling issue\n ],\n },\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/ESNextReact.js\n **/","import { Generator } from 'lib/generators/Generator';\n\nexport default Generator('ignore-styles', {\n test: /\\.css$|\\.less$/,\n loader: 'ignore-loader',\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/IgnoreStyles.js\n **/","import { Generator } from 'lib/generators/Generator';\n\nexport default Generator('json', {\n test: /\\.json$/,\n loader: 'json-loader',\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/JSON.js\n **/","import ExtractTextPlugin from 'extract-text-webpack-plugin';\n\nimport { Generator } from 'lib/generators/Generator';\n\nexport default Generator('less', {\n test: /\\.less$/,\n loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader'),\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/Less.js\n **/","import { generatorLoader } from 'lib/generators/tryToLoad';\n\nimport CSSLoader from './CSS';\nimport ESNextReactLoader from './ESNextReact';\nimport IgnoreStylesLoader from './IgnoreStyles';\nimport JSONLoader from './JSON';\nimport LessLoader from './Less';\n\nexport const getLoader = generatorLoader('loader', [\n CSSLoader,\n ESNextReactLoader,\n IgnoreStylesLoader,\n JSONLoader,\n LessLoader,\n]);\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/index.js\n **/","var _ = require('lodash');\nvar SimpleOutput = require('./SimpleOutput');\n\nmodule.exports = function(options) {\n return _.extend(SimpleOutput(options), {\n library: options.libraryName || '[name].js',\n libraryTarget: options.target || 'var',\n });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/output/LibraryOutput.js\n **/","var _ = require('lodash');\nimport { tryToLoadGenerator } from 'lib/generators/tryToLoad'\n\nvar SimpleOutput = require('./SimpleOutput');\nvar LibraryOutput = require('./LibraryOutput');\n\nfunction libraryOfTarget(target) {\n return function(options) {\n return LibraryOutput(_.extend(options, {\n target: target,\n }));\n }\n}\n\nvar outputs = {\n simple: SimpleOutput,\n library: LibraryOutput,\n this: libraryOfTarget('this'),\n commonjs: libraryOfTarget('commonjs'),\n commonjs2: libraryOfTarget('commonjs2'),\n amd: libraryOfTarget('amd'),\n umd: libraryOfTarget('umd'),\n};\n\nvar getOutput = function(outputName) {\n return tryToLoadGenerator(outputName, outputs, 'output');\n}\n\nmodule.exports = {\n outputs,\n getOutput,\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/output/index.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.NoErrorsPlugin();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/AbortIfErrorsPlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.optimize.CommonsChunkPlugin({\n name: 'vendor',\n minChunks: Infinity,\n filename: 'vendor.bundle.js'\n });\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/BundleCommonChunksPlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.LoaderOptionsPlugin({\n minimize: true,\n debug: false\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/EnableProductionLoadersPlugin.js\n **/","var ExtractTextPlugin = require('extract-text-webpack-plugin');\n\nmodule.exports = new ExtractTextPlugin('[name].css');\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/ExtractCSSPlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.optimize.UglifyJsPlugin({\n compress: {\n warnings: false\n },\n output: {\n comments: false\n },\n sourceMap: true,\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/MinifyAndTreeShakePlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.BannerPlugin({\n banner: 'require(\"source-map-support\").install();',\n raw: true,\n entryOnly: false,\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/NodeLoadSourceMapsPlugin.js\n **/","var webpack = require('webpack');\n\nvar nodeEnv = process.env.NODE_ENV || 'production';\nvar env = process.env.ENV || 'server';\n\nmodule.exports = function(options) {\n return new webpack.DefinePlugin({\n 'process.env': {\n NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv),\n ENV: JSON.stringify(options.env || env),\n },\n });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/SetNodeEnvironmentPlugin.js\n **/","import { tryToLoadGenerator } from 'lib/generators/tryToLoad';\nvar AbortIfErrorsPlugin = require('./AbortIfErrorsPlugin');\nvar BundleCommonChunksPlugin = require('./BundleCommonChunksPlugin');\nvar EnableProductionLoadersPlugin = require('./EnableProductionLoadersPlugin');\nvar ExtractCSSPlugin = require('./ExtractCSSPlugin');\nvar MinifyAndTreeShakePlugin = require('./MinifyAndTreeShakePlugin');\nvar NodeLoadSourceMapsPlugin = require('./NodeLoadSourceMapsPlugin');\nvar SetNodeEnvironmentPlugin = require('./SetNodeEnvironmentPlugin');\n\nvar plugins = {\n 'abort-if-errors': AbortIfErrorsPlugin,\n 'bundle-common': BundleCommonChunksPlugin,\n 'extract-css': ExtractCSSPlugin,\n 'production-loaders': EnableProductionLoadersPlugin,\n 'minify-and-treeshake': MinifyAndTreeShakePlugin,\n 'node-load-sourcemaps': NodeLoadSourceMapsPlugin,\n 'set-node-env': SetNodeEnvironmentPlugin,\n};\n\nfunction getPlugin(pluginName) {\n return tryToLoadGenerator(pluginName, plugins, 'plugin');\n}\n\nmodule.exports = {\n plugins,\n getPlugin,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/index.js\n **/","var autoprefixer = require('autoprefixer');\n\nmodule.exports = function(options) {\n return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions']});\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/postcss/AutoprexiferPostCSS.js\n **/","import { tryToLoadGenerator } from 'lib/generators/tryToLoad';\nvar AutoprefixerPostCSS = require('./AutoprexiferPostCSS');\n\nvar postCSSHooks = {\n 'autoprefixer-custom': AutoprefixerPostCSS,\n 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }),\n};\n\nvar getPostCSS = function(postCSSHookName) {\n return tryToLoadGenerator(postCSSHookName, postCSSHooks, 'postcsshooks');\n}\n\nmodule.exports = {\n postCSSHooks,\n getPostCSS,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/postcss/index.js\n **/","var _ = require('lodash');\nvar ModulesResolver = require('./ModulesResolver');\n\nmodule.exports = function(options){\n var result = ModulesResolver(options);\n result.modules = result.modules.concat('node_modules');\n return result;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/NPMAndModulesResolver.js\n **/","import { tryToLoadGenerator } from 'lib/generators/tryToLoad';\n\nvar SimpleResolver = require('./SimpleResolver');\nvar ModulesResolver = require('./ModulesResolver');\nvar NPMAndModulesResolver = require('./NPMAndModulesResolver');\n\nvar resolvers = {\n 'simple': SimpleResolver,\n 'modules': ModulesResolver,\n 'npm-and-modules': NPMAndModulesResolver,\n};\n\nfunction getResolver(resolverName) {\n return tryToLoadGenerator(resolverName, resolvers, 'resolver');\n}\n\nmodule.exports = {\n resolvers,\n getResolver,\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/index.js\n **/","var _ = require('lodash');\nvar fs = require('fs');\n\nmodule.exports = function getTestFiles(dir, ext) {\n if (dir.indexOf('node_modules') > -1) { return; }\n if (dir.indexOf('.git') > -1) { return; }\n\n var files = [];\n try {\n files = fs.readdirSync(dir);\n } catch (e) {\n files = [];\n }\n\n return files\n .map(function(file) {\n var path = dir + file;\n\n try {\n var stats = fs.statSync(path);\n if (stats.isDirectory()) { return getTestFiles(path + '/', ext); }\n if (file.indexOf(ext) > -1) { return { file, path }; }\n return null;\n }\n catch (e) {\n return null;\n }\n })\n .filter(function(x) { return x; })\n .reduce(function(prev, cur) {\n if (_.isArray(cur)) {\n return prev.concat(cur);\n } else {\n return prev.concat([cur]);\n }\n }, []);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/getTestFiles.js\n **/","var _ = require('lodash');\nvar fs = require('fs');\nvar path = require('path');\nvar debug = require('debug')('blueprints');\nvar Mocha = require('mocha');\nvar colors = require('colors');\nvar rimraf = require('rimraf');\n\nvar build = require('../lib/build');\nvar makeBuild = require('../lib/makeBuild').makeBuild;\nvar configs = require('../lib/configs');\nvar getWebpackEntryForTest = require('../lib/getWebpackEntryForTest');\n\nvar yargs = require('yargs');\n\nvar argv = require('yargs')\n .alias('b', 'blueprintsPath')\n .describe('b', 'path to a raw-config via a node file with moduel.exports = config')\n .default('b', './blueprints.config.js')\n .alias('p', 'production')\n .describe('p', 'enable production settings for the default build cofings')\n .default('p', false)\n .alias('c', 'client')\n .describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]')\n .default('c', false)\n .alias('s', 'server')\n .describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]')\n .default('s', false)\n .alias('a', 'clientAndServer')\n .describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.')\n .default('a', true)\n .alias('w', 'watch')\n .describe('w', '[DEFAULT=false] force watching of all builds')\n .default('w', false)\n .alias('i', 'ignoreBlueprints')\n .describe('ignore the blueprints.config.js file in the current directory and use defaults')\n .default('i', false)\n .alias('t', 'runTest')\n .describe('search for test files and run them')\n .default('t', false)\n .argv;\n\nconsole.log('...Reading Blueprints', argv.blueprintsPath);\nconsole.log('...cwd', process.cwd());\n\nfunction loadBuildsFromPath(configPath) {\n try {\n console.log('...loading bluerprints from', configPath)\n var builds = require(path.resolve(configPath));\n console.log('builds?', builds)\n if (!Array.isArray(builds)) {\n if (builds.extensions === true) {\n return { extensions: _.omit(builds, 'extensions') };\n }\n builds = [builds];\n }\n\n return { builds }\n } catch (e) {\n debug(e);\n return {};\n }\n}\n\nfunction applyExtensions(builds, extensions) {\n var ext = extensions || {};\n console.log('...applying extensions', extensions);\n return builds.map(function(build) { return _.merge(build, ext ); });\n}\n\nfunction makeConfig(builds, extensions) {\n return { builds: applyExtensions(builds, extensions).map(makeBuild) };\n}\n\nvar builds = [];\nvar extensions = {};\n\nif (argv.blueprintsPath && !argv.ignoreBlueprints) {\n var blueprints = loadBuildsFromPath(argv.blueprintsPath);\n if (blueprints.extensions) {\n extensions = blueprints.extensions;\n } else if (blueprints.builds && blueprints.builds.length) {\n builds = blueprints.builds;\n }\n}\n\nfunction loadDefaultConfigs() {\n console.log('...using default configs');\n if (argv.runTest) {\n console.log('...Setting up tests:');\n builds = [ configs.DefaultTestingConfig ];\n builds[0].webpack.entry = getWebpackEntryForTest('./');\n } else if (argv.client) {\n console.log('...client');\n builds = [ configs.getClientConfig(argv.production) ];\n } else if (argv.server) {\n console.log('...server');\n builds = [ configs.getServerConfig(argv.production) ];\n } else if (argv.clientAndServer) {\n console.log('...both');\n builds = [\n configs.getClientConfig(argv.production),\n configs.getServerConfig(argv.production),\n ];\n }\n}\n\nif (!builds.length) {\n loadDefaultConfigs();\n}\n\nif (argv.watch) {\n extensions.watch = true;\n}\n\nbuild(makeConfig(builds, extensions), function(stats) {\n if (stats.errors && stats.errors.length > 0 && !argv.watch) {\n console.log(colors.red(\n 'ERROR IN BUILD. Aborting.'\n ));\n\n process.exit(1);\n }\n\n if (argv.runTest) {\n console.log(colors.magenta(\n '\\n ******************************' +\n '\\n * RUNNING TESTS *' +\n '\\n ******************************'\n ));\n\n var m = new Mocha();\n stats.assets.forEach(function(asset) {\n var path = './.test/' + asset.name;\n m.addFile(path);\n });\n m.run()\n .on('end', function() {\n rimraf('./.test/', function() {});\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/blueprints.js\n **/","module.exports = require(\"autoprefixer\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"autoprefixer\"\n ** module id = 51\n ** module chunks = 0\n **/","module.exports = require(\"lodash/object\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"lodash/object\"\n ** module id = 52\n ** module chunks = 0\n **/","module.exports = require(\"node-notifier\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"node-notifier\"\n ** module id = 53\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/bin/webfonts.js b/bin/webfonts.js old mode 100644 new mode 100755 index 642ec57..9fdb2f6 --- a/bin/webfonts.js +++ b/bin/webfonts.js @@ -2,41 +2,41 @@ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; - +/******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { - +/******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; - +/******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; - +/******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - +/******/ /******/ // Flag the module as loaded /******/ module.l = true; - +/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } - - +/******/ +/******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; - +/******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; - +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; - +/******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 3); /******/ }) @@ -66,12 +66,12 @@ var glob = __webpack_require__(0); var path = __webpack_require__(1); var webfontsGenerator = __webpack_require__(2); - + var SRC = path.resolve('./assets/svg/*.svg'); - + glob(SRC, function (error, files) { console.log('generating font from:\n', files); - + webfontsGenerator({ files: files, dest: path.resolve('./assets/fonts'), @@ -86,4 +86,5 @@ }); /***/ } -/******/ ]); \ No newline at end of file +/******/ ]); +//# sourceMappingURL=webfonts.js.map \ No newline at end of file diff --git a/bin/webfonts.js.map b/bin/webfonts.js.map new file mode 100644 index 0000000..2d6358b --- /dev/null +++ b/bin/webfonts.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap b4fd631ef851207fc335","webpack:///external \"glob\"","webpack:///external \"path\"","webpack:///external \"webfonts-generator\"","webpack:///./src/webfonts.js"],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,kC;;;;;;ACAA,kC;;;;;;ACAA,gD;;;;;;ACAA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,oBAAoB,oBAAQ,CAAR,CAAxB;;AAEA,KAAI,MAAM,KAAK,OAAL,CAAa,oBAAb,CAAV;;AAEA,MAAK,GAAL,EAAU,UAAS,KAAT,EAAgB,KAAhB,EAAuB;AAC/B,WAAQ,GAAR,CAAY,yBAAZ,EAAuC,KAAvC;;AAEA,qBAAkB;AAChB,YAAO,KADS;AAEhB,WAAM,KAAK,OAAL,CAAa,gBAAb,CAFU;AAGhB,eAAU,OAHM;AAIhB,UAAK,IAJW;AAKhB,cAAS,KAAK,OAAL,CAAa,0BAAb,CALO;AAMhB,kBAAa,QANG;AAOhB,WAAM,IAPU;AAQhB,YAAO,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,EAAuB,KAAvB,CARS;AAShB,gBAAW;AATK,IAAlB;AAWD,EAdD,E","file":"webfonts.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b4fd631ef851207fc335\n **/","module.exports = require(\"glob\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"glob\"\n ** module id = 0\n ** module chunks = 0\n **/","module.exports = require(\"path\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"path\"\n ** module id = 1\n ** module chunks = 0\n **/","module.exports = require(\"webfonts-generator\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"webfonts-generator\"\n ** module id = 2\n ** module chunks = 0\n **/","var glob = require('glob');\nvar path = require('path');\nvar webfontsGenerator = require('webfonts-generator');\n\nvar SRC = path.resolve('./assets/svg/*.svg');\n\nglob(SRC, function(error, files) {\n console.log('generating font from:\\n', files);\n\n webfontsGenerator({\n files: files,\n dest: path.resolve('./assets/fonts'),\n fontName: 'rfont',\n css: true,\n cssDest: path.resolve('./assets/fonts/rfont.css'),\n cssFontsUrl: '/fonts',\n html: true,\n types: ['svg', 'ttf', 'woff', 'eot'],\n normalize: true,\n })\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/webfonts.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/blueprints.config.js b/blueprints.config.js index 9dd8360..a7faffd 100644 --- a/blueprints.config.js +++ b/blueprints.config.js @@ -5,10 +5,11 @@ function makeConfig(name) { return { name: name, webpack: { + devtool: 'source-map', entry, output: { generator: 'simple', - dest: './bin' + dest: './bin', }, resolve: { generator: 'npm-and-modules', @@ -24,6 +25,7 @@ function makeConfig(name) { 'set-node-env', 'abort-if-errors', 'node-executable', + // 'node-load-sourcemaps', // 'minify-and-treeshake', ], externals: 'node-modules', diff --git a/lib/generators/Generator.js b/lib/generators/Generator.js new file mode 100644 index 0000000..4cc8991 --- /dev/null +++ b/lib/generators/Generator.js @@ -0,0 +1,11 @@ +export const Generator = (nameOrNames, objectOrFunction) => { + let names =nameOrNames; + if (!Array.isArray(names)) { + names = [ names ]; + } + + return { + names, + objectOrFunction, + }; +}; diff --git a/lib/generators/entry/index.js b/lib/generators/entry/index.js index 1ab76df..29bd58f 100644 --- a/lib/generators/entry/index.js +++ b/lib/generators/entry/index.js @@ -1,6 +1,6 @@ var path = require('path'); var _ = require('lodash'); -var tryToLoadGenerator = require('../tryToLoadGenerator').tryToLoadGenerator; +import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; var entryGenerators = { }; diff --git a/lib/generators/externals/index.js b/lib/generators/externals/index.js index 4b81ea5..504d6c7 100644 --- a/lib/generators/externals/index.js +++ b/lib/generators/externals/index.js @@ -1,14 +1,14 @@ -var loadNodeModules = require('./loadNodeModules'); +import { loadNodeModules } from './loadNodeModules'; -var loaderName = 'node-modules'; +const loaderName = 'node-modules'; -function getExternals(externals) { +export const getExternals = externals => { if (typeof externals === 'string') { if (externals === loaderName) { return loadNodeModules(); - } else { - throw new Error('invalid externals loader name, did you mean: ' + loaderName + '?'); } + + throw new Error(`Invalid externals loader name, did you mean: ${loaderName} ?`); } if (typeof externals === 'object') { @@ -18,8 +18,4 @@ function getExternals(externals) { return externals; } -} - -module.exports = { - getExternals, }; diff --git a/lib/generators/externals/loadNodeModules.js b/lib/generators/externals/loadNodeModules.js index 0a4a35c..4495863 100644 --- a/lib/generators/externals/loadNodeModules.js +++ b/lib/generators/externals/loadNodeModules.js @@ -1,17 +1,17 @@ -var fs = require('fs'); +import fs from 'fs'; -function prependCommonjs (modules, name) { - modules[name] = 'commonjs ' + name; +const prependCommonjs = (modules, name) => { + modules[name] = `commonjs ${name}`; return modules; -} +}; -var lodashSubmodules = [ +const lodashSubmodules = [ 'array', 'collection', 'date', 'function', 'lang', 'math', - 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods' -].map(function(name) { return 'lodash/' + name }); + 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods', +].map(name => `lodash/${name}`); -module.exports = function(additional) { - var nodeModules = {}; +export const loadNodeModules = additional => { + const nodeModules = {}; fs.readdirSync('node_modules') .filter(function(x) { return ['.bin'].indexOf(x) === -1; }) diff --git a/lib/generators/index.js b/lib/generators/index.js index f9bdb70..6088c75 100644 --- a/lib/generators/index.js +++ b/lib/generators/index.js @@ -3,7 +3,6 @@ var getPlugin = require('./plugins').getPlugin; var getOutput = require('./output').getOutput; var getResolver = require('./resolver').getResolver; var getEntry = require('./entry').getEntry; -var getExternals = require('./externals').getExternals; var getPostCSS = require('./postcss').getPostCSS; module.exports = { @@ -12,6 +11,5 @@ module.exports = { getOutput, getResolver, getEntry, - getExternals, getPostCSS, }; diff --git a/lib/generators/loaders/CSS.js b/lib/generators/loaders/CSS.js new file mode 100644 index 0000000..e27c0b9 --- /dev/null +++ b/lib/generators/loaders/CSS.js @@ -0,0 +1,8 @@ +import ExtractTextPlugin from 'extract-text-webpack-plugin'; + +import { Generator } from 'lib/generators/Generator'; + +export default Generator('css', { + test: /\.css$/, + loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader'), +}); diff --git a/lib/generators/loaders/CSSLoader.js b/lib/generators/loaders/CSSLoader.js deleted file mode 100644 index 5918387..0000000 --- a/lib/generators/loaders/CSSLoader.js +++ /dev/null @@ -1,6 +0,0 @@ -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -module.exports = { - test: /\.css$/, - loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader'), -}; diff --git a/lib/generators/loaders/ESNextReactLoader.js b/lib/generators/loaders/ESNextReact.js similarity index 75% rename from lib/generators/loaders/ESNextReactLoader.js rename to lib/generators/loaders/ESNextReact.js index 7d7ae8b..59dcf67 100644 --- a/lib/generators/loaders/ESNextReactLoader.js +++ b/lib/generators/loaders/ESNextReact.js @@ -1,4 +1,6 @@ -module.exports = { +import { Generator } from 'lib/generators/Generator'; + +export default Generator(['esnextreact', 'ESNextReact'], { test: /\.es6\.js$|\.js$|\.jsx$/, exclude: /node_modules/, loader: 'babel', @@ -14,5 +16,5 @@ module.exports = { 'transform-react-inline-elements', 'lodash', // fixes the babel budnling issue ], - } -}; + }, +}); diff --git a/lib/generators/loaders/IgnoreStyles.js b/lib/generators/loaders/IgnoreStyles.js new file mode 100644 index 0000000..1a6508f --- /dev/null +++ b/lib/generators/loaders/IgnoreStyles.js @@ -0,0 +1,6 @@ +import { Generator } from 'lib/generators/Generator'; + +export default Generator('ignore-styles', { + test: /\.css$|\.less$/, + loader: 'ignore-loader', +}); diff --git a/lib/generators/loaders/IgnoreStylesLoader.js b/lib/generators/loaders/IgnoreStylesLoader.js deleted file mode 100644 index 00bf5a2..0000000 --- a/lib/generators/loaders/IgnoreStylesLoader.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - test: /\.css$|\.less$/, - loader: 'ignore-loader', -}; diff --git a/lib/generators/loaders/JSON.js b/lib/generators/loaders/JSON.js new file mode 100644 index 0000000..a903865 --- /dev/null +++ b/lib/generators/loaders/JSON.js @@ -0,0 +1,6 @@ +import { Generator } from 'lib/generators/Generator'; + +export default Generator('json', { + test: /\.json$/, + loader: 'json-loader', +}); diff --git a/lib/generators/loaders/JSONLoader.js b/lib/generators/loaders/JSONLoader.js deleted file mode 100644 index 19cc088..0000000 --- a/lib/generators/loaders/JSONLoader.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - test: /\.json$/, - loader: 'json-loader', -}; diff --git a/lib/generators/loaders/Less.js b/lib/generators/loaders/Less.js new file mode 100644 index 0000000..7987c03 --- /dev/null +++ b/lib/generators/loaders/Less.js @@ -0,0 +1,8 @@ +import ExtractTextPlugin from 'extract-text-webpack-plugin'; + +import { Generator } from 'lib/generators/Generator'; + +export default Generator('less', { + test: /\.less$/, + loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader'), +}); diff --git a/lib/generators/loaders/LessLoader.js b/lib/generators/loaders/LessLoader.js deleted file mode 100644 index 0e00f9a..0000000 --- a/lib/generators/loaders/LessLoader.js +++ /dev/null @@ -1,6 +0,0 @@ -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -module.exports = { - test: /\.less$/, - loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader'), -}; diff --git a/lib/generators/loaders/index.js b/lib/generators/loaders/index.js index 59618c3..42854f2 100644 --- a/lib/generators/loaders/index.js +++ b/lib/generators/loaders/index.js @@ -1,25 +1,15 @@ -var tryToLoadGenerator = require('../tryToLoadGenerator').tryToLoadGenerator; - -var ESNextReactLoader = require('./ESNextReactLoader'); -var JSONLoader = require('./JSONLoader'); -var CSSLoader = require('./CSSLoader'); -var LessLoader = require('./LessLoader'); -var IgnoreStylesLoader = require('./IgnoreStylesLoader'); - -var loaders = { - 'esnextreact': ESNextReactLoader, - 'ESNextReact': ESNextReactLoader, - 'json': JSONLoader, - 'css': CSSLoader, - 'less': LessLoader, - 'ignore-styles': IgnoreStylesLoader, -} - -var getLoader = function(loaderName) { - return tryToLoadGenerator(loaderName, loaders, 'loader'); -} - -module.exports = { - loaders, - getLoader, -}; +import { generatorLoader } from 'lib/generators/tryToLoad'; + +import CSSLoader from './CSS'; +import ESNextReactLoader from './ESNextReact'; +import IgnoreStylesLoader from './IgnoreStyles'; +import JSONLoader from './JSON'; +import LessLoader from './Less'; + +export const getLoader = generatorLoader('loader', [ + CSSLoader, + ESNextReactLoader, + IgnoreStylesLoader, + JSONLoader, + LessLoader, +]); diff --git a/lib/generators/output/index.js b/lib/generators/output/index.js index a8ba28c..0ffae98 100644 --- a/lib/generators/output/index.js +++ b/lib/generators/output/index.js @@ -1,5 +1,5 @@ var _ = require('lodash'); -var tryToLoadGenerator = require('../tryToLoadGenerator').tryToLoadGenerator; +import { tryToLoadGenerator } from 'lib/generators/tryToLoad' var SimpleOutput = require('./SimpleOutput'); var LibraryOutput = require('./LibraryOutput'); diff --git a/lib/generators/plugins/index.js b/lib/generators/plugins/index.js index e6dcf67..eb884c9 100644 --- a/lib/generators/plugins/index.js +++ b/lib/generators/plugins/index.js @@ -1,4 +1,4 @@ -var tryToLoadGenerator = require('../tryToLoadGenerator').tryToLoadGenerator; +import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; var AbortIfErrorsPlugin = require('./AbortIfErrorsPlugin'); var BundleCommonChunksPlugin = require('./BundleCommonChunksPlugin'); var EnableProductionLoadersPlugin = require('./EnableProductionLoadersPlugin'); diff --git a/lib/generators/postcss/index.js b/lib/generators/postcss/index.js index 4094335..f0c16f8 100644 --- a/lib/generators/postcss/index.js +++ b/lib/generators/postcss/index.js @@ -1,4 +1,4 @@ -var tryToLoadGenerator = require('../tryToLoadGenerator').tryToLoadGenerator; +import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; var AutoprefixerPostCSS = require('./AutoprexiferPostCSS'); var postCSSHooks = { diff --git a/lib/generators/resolver/index.js b/lib/generators/resolver/index.js index ef3c4fc..de7ab87 100644 --- a/lib/generators/resolver/index.js +++ b/lib/generators/resolver/index.js @@ -1,4 +1,4 @@ -var tryToLoadGenerator = require('../tryToLoadGenerator').tryToLoadGenerator; +import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; var SimpleResolver = require('./SimpleResolver'); var ModulesResolver = require('./ModulesResolver'); diff --git a/lib/generators/tryToLoad.js b/lib/generators/tryToLoad.js new file mode 100644 index 0000000..409bab0 --- /dev/null +++ b/lib/generators/tryToLoad.js @@ -0,0 +1,45 @@ +import { omit } from 'lodash/object'; + +const applyGenerators = (loaders, generator) => { + generator.names.forEach(name => { + loaders[name] = generator.objectOrFunction; + }); + + return loaders; +}; + +export const generatorLoader = (thingKind, generators) => { + const loaders = generators.reduce((prev, generator) => applyGenerators({...prev}, generator), {}); + return (loaderName) => tryToLoadGenerator(loaderName, loaders, thingKind); +}; + +export const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => { + const parsed = parseNameOrObject(nameOrObject); + if (!parsed) { + return nameOrObject; + } + + const thing = lookupTable[parsed.name]; + if (!thing) { + throw new Error(`Failed to resolve ${nameOrObject} - ${thingKind}`); + } + + if (typeof thing === 'function') { + return thing(parsed.options); + } + + return thing; +}; + +const parseNameOrObject = (nameOrObject) => { + if (typeof nameOrObject === 'string') { + return { name: nameOrObject, options: {} }; + } + + if (typeof nameOrObject === 'object') { + const name = nameOrObject.generator; + if (typeof name === 'string') { + return { name, options: omit(nameOrObject, 'name') }; + } + } +}; diff --git a/lib/generators/tryToLoadGenerator.js b/lib/generators/tryToLoadGenerator.js deleted file mode 100644 index 3344b07..0000000 --- a/lib/generators/tryToLoadGenerator.js +++ /dev/null @@ -1,36 +0,0 @@ -var _ = require('lodash'); - -function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { - var parsed = parseNameOrObject(nameOrObject); - if (!parsed) { - return nameOrObject; - } - - var thing = lookupTable[parsed.name]; - if (!thing){ - throw new Error('Failed to resolve ' + nameOrObject + ' ' + thingKind); - return; - } - if (typeof thing === 'function') { - return thing(parsed.options); - } - - return thing; -} - -function parseNameOrObject(nameOrObject) { - if (typeof nameOrObject === 'string') { - return { name: nameOrObject, options: {} }; - } - - if (typeof nameOrObject === 'object') { - var name = nameOrObject.generator; - if (typeof name === 'string') { - return { name, options: _.omit(nameOrObject, 'name') }; - } - } -} - -module.exports = { - tryToLoadGenerator -}; diff --git a/lib/makeBuild.js b/lib/makeBuild.js index 21cda0a..b4ee2b8 100644 --- a/lib/makeBuild.js +++ b/lib/makeBuild.js @@ -6,8 +6,7 @@ var getOutput = generators.getOutput; var getResolver = generators.getResolver; var getEntry = generators.getEntry; var getPostCSS = generators.getPostCSS; -var getExternals = generators.getExternals; - +import { getExternals } from 'lib/generators/externals'; function makeBuild(shortBuild) { return buildObject(shortBuild.name, diff --git a/lib/output/SimpleOutput.js b/lib/output/SimpleOutput.js deleted file mode 100644 index b299aac..0000000 --- a/lib/output/SimpleOutput.js +++ /dev/null @@ -1,9 +0,0 @@ -var path = require('path'); - -module.exports = function(options) { - return { - path: path.join(process.cwd(), options.dest), - filename: options.name || '[name].js', - sourceMapFilename: '[name].js.map', - }; -}; diff --git a/npm-debug.log b/npm-debug.log deleted file mode 100644 index edf391b..0000000 --- a/npm-debug.log +++ /dev/null @@ -1,35 +0,0 @@ -0 info it worked if it ends with ok -1 verbose cli [ '/usr/local/Cellar/node/5.5.0/bin/node', -1 verbose cli '/usr/local/bin/npm', -1 verbose cli 'run', -1 verbose cli 'watch' ] -2 info using npm@3.9.0 -3 info using node@v5.5.0 -4 verbose stack Error: Failed to parse json -4 verbose stack Trailing comma in object at 13:3 -4 verbose stack }, -4 verbose stack ^ -4 verbose stack at parseError (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:390:11) -4 verbose stack at parseJson (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:79:23) -4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:48:5 -4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16 -4 verbose stack at tryToString (fs.js:414:3) -4 verbose stack at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:401:12) -5 verbose cwd /Users/schwers/src/reddit/r/build -6 error Darwin 14.5.0 -7 error argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "run" "watch" -8 error node v5.5.0 -9 error npm v3.9.0 -10 error file /Users/schwers/src/reddit/r/build/package.json -11 error code EJSONPARSE -12 error Failed to parse json -12 error Trailing comma in object at 13:3 -12 error }, -12 error ^ -13 error File: /Users/schwers/src/reddit/r/build/package.json -14 error Failed to parse package.json data. -14 error package.json must be actual JSON, not just JavaScript. -14 error -14 error This is not a bug in npm. -14 error Tell the package author to fix their package.json file. JSON.parse -15 verbose exit [ 1, true ] diff --git a/package.json b/package.json index bab91b2..6e5e29e 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "node-notifier": "^4.5.0", "postcss-loader": "^0.9.1", "rimraf": "^2.5.2", + "source-map-support": "^0.4.0", "style-loader": "^0.13.1", "webfonts-generator": "^0.3.5", "webpack": "^2.1.0-beta.7", diff --git a/src/blueprints.js b/src/blueprints.js index 9502e16..eb0357d 100755 --- a/src/blueprints.js +++ b/src/blueprints.js @@ -12,7 +12,6 @@ var configs = require('../lib/configs'); var getWebpackEntryForTest = require('../lib/getWebpackEntryForTest'); var yargs = require('yargs'); -console.log("yargs?", yargs); var argv = require('yargs') .alias('b', 'blueprintsPath') From 408516188eb8db34178a62b4e7b594fd690f2dc3 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 15:20:28 -0700 Subject: [PATCH 05/14] Move some output around --- bin/blueprints.js | 464 ++++++++++++------------- bin/blueprints.js.map | 1 - bin/webfonts.js | 31 +- bin/webfonts.js.map | 1 - blueprints.config.js | 11 +- lib/generators/Generator.js | 2 +- lib/generators/output/Library.js | 10 + lib/generators/output/LibraryOutput.js | 9 - lib/generators/output/Simple.js | 8 + lib/generators/output/SimpleOutput.js | 8 - lib/generators/output/index.js | 37 +- lib/generators/tryToLoad.js | 5 +- 12 files changed, 275 insertions(+), 312 deletions(-) delete mode 100644 bin/blueprints.js.map delete mode 100644 bin/webfonts.js.map create mode 100644 lib/generators/output/Library.js delete mode 100644 lib/generators/output/LibraryOutput.js create mode 100644 lib/generators/output/Simple.js delete mode 100644 lib/generators/output/SimpleOutput.js diff --git a/bin/blueprints.js b/bin/blueprints.js index e1cfd3b..9ad20cb 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -2,41 +2,41 @@ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; -/******/ + /******/ // The require function /******/ function __webpack_require__(moduleId) { -/******/ + /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; -/******/ + /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; -/******/ + /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ + /******/ // Flag the module as loaded /******/ module.l = true; -/******/ + /******/ // Return the exports of the module /******/ return module.exports; /******/ } -/******/ -/******/ + + /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; -/******/ + /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; -/******/ + /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; -/******/ + /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 50); /******/ }) @@ -49,32 +49,45 @@ /***/ }, /* 1 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var Generator = function Generator(nameOrNames, objectOrFunction) { + var names = nameOrNames; + if (!Array.isArray(names)) { + names = [names]; + } + + return { + names: names, + objectOrFunction: objectOrFunction + }; + }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return Generator; }}); + +/***/ }, +/* 2 */ /***/ function(module, exports) { module.exports = require("webpack"); /***/ }, -/* 2 */ +/* 3 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(52); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - - + var applyGenerators = function applyGenerators(loaders, generator) { generator.names.forEach(function (name) { loaders[name] = generator.objectOrFunction; }); - + return loaders; }; - + var generatorLoader = function generatorLoader(thingKind, generators) { var loaders = generators.reduce(function (prev, generator) { return applyGenerators(_extends({}, prev), generator); @@ -84,57 +97,40 @@ }; }; /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return generatorLoader; }}); - + var tryToLoadGenerator = function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { var parsed = parseNameOrObject(nameOrObject); if (!parsed) { return nameOrObject; } - + var thing = lookupTable[parsed.name]; if (!thing) { throw new Error('Failed to resolve ' + nameOrObject + ' - ' + thingKind); } - + if (typeof thing === 'function') { + console.log('parsed', parsed); return thing(parsed.options); } - + return thing; }; /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return tryToLoadGenerator; }}); - + var parseNameOrObject = function parseNameOrObject(nameOrObject) { if (typeof nameOrObject === 'string') { return { name: nameOrObject, options: {} }; } - + if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { var name = nameOrObject.generator; if (typeof name === 'string') { - return { name: name, options: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(nameOrObject, 'name') }; + return { name: name, options: nameOrObject }; } } }; -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var Generator = function Generator(nameOrNames, objectOrFunction) { - var names = nameOrNames; - if (!Array.isArray(names)) { - names = [names]; - } - - return { - names: names, - objectOrFunction: objectOrFunction - }; - }; - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return Generator; }}); - /***/ }, /* 4 */ /***/ function(module, exports) { @@ -163,14 +159,21 @@ /* 8 */ /***/ function(module, exports, __webpack_require__) { - var path = __webpack_require__(5); - - module.exports = function (options) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(5); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('simple', function (options) { return { - path: path.resolve(options.dest), + path: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(options.dest), filename: options.name || '[name].js' }; - }; + }); /***/ }, /* 9 */ @@ -179,11 +182,11 @@ var _ = __webpack_require__(0); var path = __webpack_require__(5); var SimpleResolver = __webpack_require__(10); - + function resolvePath(strPath) { return path.resolve(strPath); // path.resolve seems to have a binding issue; } - + module.exports = function (options) { return _.extend(SimpleResolver(options), { modules: (options.paths || []).map(resolvePath) @@ -205,14 +208,14 @@ /***/ function(module, exports, __webpack_require__) { /* eslint-disable */ - - var webpack = __webpack_require__(1); - var notifier = __webpack_require__(53); + + var webpack = __webpack_require__(2); + var notifier = __webpack_require__(52); var _ = __webpack_require__(0); var fs = __webpack_require__(4); - + var nodeEnv = "production" || 'development'; - + module.exports = function (config, cb) { if (!cb) { cb = function cb() {}; @@ -221,7 +224,7 @@ exectuteBuild(build, cb); }); }; - + function exectuteBuild(build, cb) { var compiler = webpack(build.webpackConfig); if (build.watch) { @@ -240,18 +243,18 @@ }); } } - + function formatAsset(asset) { var name = asset.name; var size = asset.size; var sizeStr = size + " B"; - + if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; - + return name + " [" + sizeStr + "]"; } - + function outputBuild(type) { return function (err, stats) { if (!err) { @@ -260,9 +263,9 @@ chunks: false, version: false })); - + var s = stats.toJson(); - + if (s.errors && s.errors.length) { notifier.notify({ "title": type + " – ERROR!", @@ -287,19 +290,19 @@ var DefaultServerConfig = __webpack_require__(23); var DefaultProductionServerConfig = __webpack_require__(22); var DefaultTestingConfig = __webpack_require__(24); - + function getBuild(production, debugConfig, productionConfig) { return production ? productionConfig : debugConfig; } - + function getClientConfig(production) { return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig); } - + function getServerConfig(production) { return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig); } - + module.exports = { DefaultClientConfig: DefaultClientConfig, DefaultProductionClientConfig: DefaultProductionClientConfig, @@ -315,12 +318,12 @@ /***/ function(module, exports, __webpack_require__) { var getTestFiles = __webpack_require__(49); - + module.exports = function getWebpackEntryForTest(dir) { console.log(' Searching for tests in', process.cwd()); var files = getTestFiles(dir, '.test.'); console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); - + return files.reduce(function (prev, cur) { var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest'; prev[moduleName] = cur.path; @@ -342,12 +345,12 @@ var getResolver = generators.getResolver; var getEntry = generators.getEntry; var getPostCSS = generators.getPostCSS; - - + + function makeBuild(shortBuild) { return buildObject(shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name)); } - + function buildObject(buildName, watch, webpackConfig) { return { watch: watch, @@ -355,64 +358,64 @@ webpackConfig: webpackConfig }; } - + function parseWebpackConfig(shortHandConfig, buildName) { var webpackConfig = {}; - + Object.keys(shortHandConfig).forEach(function (key) { var obj = shortHandConfig[key]; - + if (key === 'loaders') { _.defaults(webpackConfig, { module: { loaders: [] } }); concatInPlace(webpackConfig.module.loaders, obj.map(getLoader)); } - + if (key === 'plugins') { webpackConfig.plugins = obj.map(getPlugin); } - + if (key === 'output') { webpackConfig.output = getOutput(obj); } - + if (key === 'resolve') { webpackConfig.resolve = getResolver(obj); } - + if (key === 'entry') { webpackConfig.entry = getEntry(obj, buildName); } - + if (key === 'postcss') { webpackConfig.postcss = obj.map(getPostCSS); } - + if (key === 'externals') { webpackConfig.externals = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_externals__["a"].bind()(obj); } }); - + return _.extend(webpackConfig, _.omit(shortHandConfig, Object.keys(webpackConfig).concat('loaders'))); } - + function concatInPlace(dest, source) { source.forEach(function (thing) { dest.push(thing); }); } - + function loadNameOrUseSource(thing, load) { if (typeof thing === 'string') { return load(thing); } - + return thing; } - + function mapLoadNameOrUseSource(array, loader) { return array.map(loader); } - + module.exports = { makeBuild: makeBuild, buildObject: buildObject, @@ -583,7 +586,7 @@ /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); - + module.exports = { name: 'Test', webpack: { @@ -611,15 +614,15 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - + var path = __webpack_require__(5); var _ = __webpack_require__(0); - - + + var entryGenerators = {}; - + function getEntry(pathOrObject, buildName) { // for now takes the path to the file, and the build name and makes // the entry point object. in the future we can do things like auto traverers @@ -629,12 +632,12 @@ if ((typeof pathOrObject === 'undefined' ? 'undefined' : _typeof(pathOrObject)) === 'object') { return pathOrObject; } - + var entryConfig = {}; entryConfig[buildName] = path.resolve(pathOrObject); return entryConfig; }; - + module.exports = { getEntry: getEntry, entryGenerators: entryGenerators @@ -647,25 +650,25 @@ "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadNodeModules__ = __webpack_require__(27); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - - - + + + var loaderName = 'node-modules'; - + var getExternals = function getExternals(externals) { if (typeof externals === 'string') { if (externals === loaderName) { return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(); } - + throw new Error('Invalid externals loader name, did you mean: ' + loaderName + ' ?'); } - + if ((typeof externals === 'undefined' ? 'undefined' : _typeof(externals)) === 'object') { if (externals.generator === loaderName) { return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(externals.additional); } - + return externals; } }; @@ -679,32 +682,32 @@ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); - - + + var prependCommonjs = function prependCommonjs(modules, name) { modules[name] = 'commonjs ' + name; return modules; }; - + var lodashSubmodules = ['array', 'collection', 'date', 'function', 'lang', 'math', 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods'].map(function (name) { return 'lodash/' + name; }); - + var loadNodeModules = function loadNodeModules(additional) { var nodeModules = {}; - + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_fs___default.a.readdirSync('node_modules').filter(function (x) { return ['.bin'].indexOf(x) === -1; }).reduce(prependCommonjs, nodeModules); - + if (additional) { additional.reduce(prependCommonjs, nodeModules); } - + if (nodeModules.lodash) { lodashSubmodules.reduce(prependCommonjs, nodeModules); } - + return nodeModules; }; /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return loadNodeModules; }}); @@ -719,7 +722,7 @@ var getResolver = __webpack_require__(48).getResolver; var getEntry = __webpack_require__(25).getEntry; var getPostCSS = __webpack_require__(46).getPostCSS; - + module.exports = { getLoader: getLoader, getPlugin: getPlugin, @@ -737,11 +740,11 @@ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(3); - - - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('css', { test: /\.css$/, loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader') @@ -752,9 +755,9 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(3); - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()(['esnextreact', 'ESNextReact'], { test: /\.es6\.js$|\.js$|\.jsx$/, exclude: /node_modules/, @@ -770,9 +773,9 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(3); - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('ignore-styles', { test: /\.css$|\.less$/, loader: 'ignore-loader' @@ -783,9 +786,9 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(3); - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('json', { test: /\.json$/, loader: 'json-loader' @@ -799,11 +802,11 @@ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(3); - - - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('less', { test: /\.less$/, loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader!less-loader') @@ -814,20 +817,20 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CSS__ = __webpack_require__(29); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ESNextReact__ = __webpack_require__(30); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__ = __webpack_require__(31); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__JSON__ = __webpack_require__(32); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Less__ = __webpack_require__(33); - - - - - - - - + + + + + + + + var getLoader = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('loader', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__CSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__ESNextReact__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__JSON__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__Less__["a"]]); /* harmony export */ Object.defineProperty(exports, "getLoader", {configurable: false, enumerable: true, get: function() { return getLoader; }}); @@ -835,69 +838,53 @@ /* 35 */ /***/ function(module, exports, __webpack_require__) { - var _ = __webpack_require__(0); - var SimpleOutput = __webpack_require__(8); - - module.exports = function (options) { - return _.extend(SimpleOutput(options), { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Simple__ = __webpack_require__(8); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + var simple = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__Simple__["a"].objectOrFunction; // is a function + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()(['this', 'commonjs', 'commonjs2', 'amd', 'umd'], function (options) { + return _extends({}, simple(options), { library: options.libraryName || '[name].js', - libraryTarget: options.target || 'var' + // use options.generator to know the name we've been passed, which will be one of the above ^ + libraryTarget: options.target || options.generator || 'var' }); - }; + }); /***/ }, /* 36 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); - var _ = __webpack_require__(0); - - - var SimpleOutput = __webpack_require__(8); - var LibraryOutput = __webpack_require__(35); - - function libraryOfTarget(target) { - return function (options) { - return LibraryOutput(_.extend(options, { - target: target - })); - }; - } - - var outputs = { - simple: SimpleOutput, - library: LibraryOutput, - this: libraryOfTarget('this'), - commonjs: libraryOfTarget('commonjs'), - commonjs2: libraryOfTarget('commonjs2'), - amd: libraryOfTarget('amd'), - umd: libraryOfTarget('umd') - }; - - var getOutput = function getOutput(outputName) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(outputName, outputs, 'output'); - }; - - module.exports = { - outputs: outputs, - getOutput: getOutput - }; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Library__ = __webpack_require__(35); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(8); + + + + + + var getOutput = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('output', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Library__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"]]); + /* harmony export */ Object.defineProperty(exports, "getOutput", {configurable: false, enumerable: true, get: function() { return getOutput; }}); /***/ }, /* 37 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(1); - + var webpack = __webpack_require__(2); + module.exports = new webpack.NoErrorsPlugin(); /***/ }, /* 38 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(1); - + var webpack = __webpack_require__(2); + module.exports = new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', minChunks: Infinity, @@ -908,8 +895,8 @@ /* 39 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(1); - + var webpack = __webpack_require__(2); + module.exports = new webpack.LoaderOptionsPlugin({ minimize: true, debug: false @@ -920,15 +907,15 @@ /***/ function(module, exports, __webpack_require__) { var ExtractTextPlugin = __webpack_require__(7); - + module.exports = new ExtractTextPlugin('[name].css'); /***/ }, /* 41 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(1); - + var webpack = __webpack_require__(2); + module.exports = new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false @@ -943,8 +930,8 @@ /* 42 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(1); - + var webpack = __webpack_require__(2); + module.exports = new webpack.BannerPlugin({ banner: 'require("source-map-support").install();', raw: true, @@ -955,11 +942,11 @@ /* 43 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(1); - + var webpack = __webpack_require__(2); + var nodeEnv = "production" || 'production'; var env = "server" || 'server'; - + module.exports = function (options) { return new webpack.DefinePlugin({ 'process.env': { @@ -974,8 +961,8 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + var AbortIfErrorsPlugin = __webpack_require__(37); var BundleCommonChunksPlugin = __webpack_require__(38); var EnableProductionLoadersPlugin = __webpack_require__(39); @@ -983,7 +970,7 @@ var MinifyAndTreeShakePlugin = __webpack_require__(41); var NodeLoadSourceMapsPlugin = __webpack_require__(42); var SetNodeEnvironmentPlugin = __webpack_require__(43); - + var plugins = { 'abort-if-errors': AbortIfErrorsPlugin, 'bundle-common': BundleCommonChunksPlugin, @@ -993,11 +980,11 @@ 'node-load-sourcemaps': NodeLoadSourceMapsPlugin, 'set-node-env': SetNodeEnvironmentPlugin }; - + function getPlugin(pluginName) { return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(pluginName, plugins, 'plugin'); } - + module.exports = { plugins: plugins, getPlugin: getPlugin @@ -1008,7 +995,7 @@ /***/ function(module, exports, __webpack_require__) { var autoprefixer = __webpack_require__(51); - + module.exports = function (options) { return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions'] }); }; @@ -1018,19 +1005,19 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + var AutoprefixerPostCSS = __webpack_require__(45); - + var postCSSHooks = { 'autoprefixer-custom': AutoprefixerPostCSS, 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }) }; - + var getPostCSS = function getPostCSS(postCSSHookName) { return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(postCSSHookName, postCSSHooks, 'postcsshooks'); }; - + module.exports = { postCSSHooks: postCSSHooks, getPostCSS: getPostCSS @@ -1042,7 +1029,7 @@ var _ = __webpack_require__(0); var ModulesResolver = __webpack_require__(9); - + module.exports = function (options) { var result = ModulesResolver(options); result.modules = result.modules.concat('node_modules'); @@ -1054,23 +1041,23 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(2); - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + + var SimpleResolver = __webpack_require__(10); var ModulesResolver = __webpack_require__(9); var NPMAndModulesResolver = __webpack_require__(47); - + var resolvers = { 'simple': SimpleResolver, 'modules': ModulesResolver, 'npm-and-modules': NPMAndModulesResolver }; - + function getResolver(resolverName) { return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(resolverName, resolvers, 'resolver'); } - + module.exports = { resolvers: resolvers, getResolver: getResolver @@ -1082,7 +1069,7 @@ var _ = __webpack_require__(0); var fs = __webpack_require__(4); - + module.exports = function getTestFiles(dir, ext) { if (dir.indexOf('node_modules') > -1) { return; @@ -1090,17 +1077,17 @@ if (dir.indexOf('.git') > -1) { return; } - + var files = []; try { files = fs.readdirSync(dir); } catch (e) { files = []; } - + return files.map(function (file) { var path = dir + file; - + try { var stats = fs.statSync(path); if (stats.isDirectory()) { @@ -1135,19 +1122,19 @@ var Mocha = __webpack_require__(18); var colors = __webpack_require__(16); var rimraf = __webpack_require__(19); - + var build = __webpack_require__(11); var makeBuild = __webpack_require__(14).makeBuild; var configs = __webpack_require__(12); var getWebpackEntryForTest = __webpack_require__(13); - + var yargs = __webpack_require__(6); - + var argv = __webpack_require__(6).alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; - + console.log('...Reading Blueprints', argv.blueprintsPath); console.log('...cwd', process.cwd()); - + function loadBuildsFromPath(configPath) { try { console.log('...loading bluerprints from', configPath); @@ -1159,14 +1146,14 @@ } builds = [builds]; } - + return { builds: builds }; } catch (e) { debug(e); return {}; } } - + function applyExtensions(builds, extensions) { var ext = extensions || {}; console.log('...applying extensions', extensions); @@ -1174,14 +1161,14 @@ return _.merge(build, ext); }); } - + function makeConfig(builds, extensions) { return { builds: applyExtensions(builds, extensions).map(makeBuild) }; } - + var builds = []; var extensions = {}; - + if (argv.blueprintsPath && !argv.ignoreBlueprints) { var blueprints = loadBuildsFromPath(argv.blueprintsPath); if (blueprints.extensions) { @@ -1190,7 +1177,7 @@ builds = blueprints.builds; } } - + function loadDefaultConfigs() { console.log('...using default configs'); if (argv.runTest) { @@ -1208,25 +1195,25 @@ builds = [configs.getClientConfig(argv.production), configs.getServerConfig(argv.production)]; } } - + if (!builds.length) { loadDefaultConfigs(); } - + if (argv.watch) { extensions.watch = true; } - + build(makeConfig(builds, extensions), function (stats) { if (stats.errors && stats.errors.length > 0 && !argv.watch) { console.log(colors.red('ERROR IN BUILD. Aborting.')); - + process.exit(1); } - + if (argv.runTest) { console.log(colors.magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); - + var m = new Mocha(); stats.assets.forEach(function (asset) { var path = './.test/' + asset.name; @@ -1246,16 +1233,9 @@ /***/ }, /* 52 */ -/***/ function(module, exports) { - - module.exports = require("lodash/object"); - -/***/ }, -/* 53 */ /***/ function(module, exports) { module.exports = require("node-notifier"); /***/ } -/******/ ]); -//# sourceMappingURL=blueprints.js.map \ No newline at end of file +/******/ ]); \ No newline at end of file diff --git a/bin/blueprints.js.map b/bin/blueprints.js.map deleted file mode 100644 index 4adada2..0000000 --- a/bin/blueprints.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap dd92b9d32cc48b271fbb","webpack:///external \"lodash\"","webpack:///external \"webpack\"","webpack:///./lib/generators/tryToLoad.js","webpack:///./lib/generators/Generator.js","webpack:///external \"fs\"","webpack:///external \"path\"","webpack:///external \"yargs\"","webpack:///external \"extract-text-webpack-plugin\"","webpack:///./lib/generators/output/SimpleOutput.js","webpack:///./lib/generators/resolver/ModulesResolver.js","webpack:///./lib/generators/resolver/SimpleResolver.js","webpack:///./lib/build.js","webpack:///./lib/configs/index.js","webpack:///./lib/getWebpackEntryForTest.js","webpack:///./lib/makeBuild.js","webpack:///./src","webpack:///external \"colors\"","webpack:///external \"debug\"","webpack:///external \"mocha\"","webpack:///external \"rimraf\"","webpack:///./lib/configs/DefaultClientConfig.js","webpack:///./lib/configs/DefaultProductionClientConfig.js","webpack:///./lib/configs/DefaultProductionServerConfig.js","webpack:///./lib/configs/DefaultServerConfig.js","webpack:///./lib/configs/DefaultTestingConfig.js","webpack:///./lib/generators/entry/index.js","webpack:///./lib/generators/externals/index.js","webpack:///./lib/generators/externals/loadNodeModules.js","webpack:///./lib/generators/index.js","webpack:///./lib/generators/loaders/CSS.js","webpack:///./lib/generators/loaders/ESNextReact.js","webpack:///./lib/generators/loaders/IgnoreStyles.js","webpack:///./lib/generators/loaders/JSON.js","webpack:///./lib/generators/loaders/Less.js","webpack:///./lib/generators/loaders/index.js","webpack:///./lib/generators/output/LibraryOutput.js","webpack:///./lib/generators/output/index.js","webpack:///./lib/generators/plugins/AbortIfErrorsPlugin.js","webpack:///./lib/generators/plugins/BundleCommonChunksPlugin.js","webpack:///./lib/generators/plugins/EnableProductionLoadersPlugin.js","webpack:///./lib/generators/plugins/ExtractCSSPlugin.js","webpack:///./lib/generators/plugins/MinifyAndTreeShakePlugin.js","webpack:///./lib/generators/plugins/NodeLoadSourceMapsPlugin.js","webpack:///./lib/generators/plugins/SetNodeEnvironmentPlugin.js","webpack:///./lib/generators/plugins/index.js","webpack:///./lib/generators/postcss/AutoprexiferPostCSS.js","webpack:///./lib/generators/postcss/index.js","webpack:///./lib/generators/resolver/NPMAndModulesResolver.js","webpack:///./lib/generators/resolver/index.js","webpack:///./lib/getTestFiles.js","webpack:///./src/blueprints.js","webpack:///external \"autoprefixer\"","webpack:///external \"lodash/object\"","webpack:///external \"node-notifier\""],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,oC;;;;;;ACAA,qC;;;;;;;;;;;;;;ACAA;;AAEA,KAAM,kBAAkB,SAAlB,eAAkB,CAAC,OAAD,EAAU,SAAV,EAAwB;AAC9C,aAAU,KAAV,CAAgB,OAAhB,CAAwB,gBAAQ;AAC9B,aAAQ,IAAR,IAAgB,UAAU,gBAA1B;AACD,IAFD;;AAIA,UAAO,OAAP;AACD,EAND;;AAQO,KAAM,kBAAkB,SAAlB,eAAkB,CAAC,SAAD,EAAY,UAAZ,EAA2B;AACxD,OAAM,UAAU,WAAW,MAAX,CAAkB,UAAC,IAAD,EAAO,SAAP;AAAA,YAAqB,6BAAoB,IAApB,GAA2B,SAA3B,CAArB;AAAA,IAAlB,EAA8E,EAA9E,CAAhB;AACA,UAAO,UAAC,UAAD;AAAA,YAAgB,mBAAmB,UAAnB,EAA+B,OAA/B,EAAwC,SAAxC,CAAhB;AAAA,IAAP;AACD,EAHM;AAAA;;AAKA,KAAM,qBAAqB,SAArB,kBAAqB,CAAC,YAAD,EAAe,WAAf,EAA4B,SAA5B,EAA0C;AAC1E,OAAM,SAAS,kBAAkB,YAAlB,CAAf;AACA,OAAI,CAAC,MAAL,EAAa;AACX,YAAO,YAAP;AACD;;AAED,OAAM,QAAQ,YAAY,OAAO,IAAnB,CAAd;AACA,OAAI,CAAC,KAAL,EAAY;AACV,WAAM,IAAI,KAAJ,wBAA+B,YAA/B,WAAiD,SAAjD,CAAN;AACD;;AAED,OAAI,OAAO,KAAP,KAAiB,UAArB,EAAiC;AAC/B,YAAO,MAAM,OAAO,OAAb,CAAP;AACD;;AAED,UAAO,KAAP;AACD,EAhBM;AAAA;;AAkBP,KAAM,oBAAoB,SAApB,iBAAoB,CAAC,YAAD,EAAkB;AAC1C,OAAI,OAAO,YAAP,KAAwB,QAA5B,EAAsC;AACpC,YAAO,EAAE,MAAM,YAAR,EAAsB,SAAS,EAA/B,EAAP;AACD;;AAED,OAAI,QAAO,YAAP,yCAAO,YAAP,OAAwB,QAA5B,EAAsC;AACpC,SAAM,OAAO,aAAa,SAA1B;AACA,SAAI,OAAO,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAO,EAAE,UAAF,EAAQ,SAAS,+EAAK,YAAL,EAAmB,MAAnB,CAAjB,EAAP;AACD;AACF;AACF,EAXD,C;;;;;;;ACjCO,KAAM,YAAY,SAAZ,SAAY,CAAC,WAAD,EAAc,gBAAd,EAAmC;AAC1D,OAAI,QAAO,WAAX;AACA,OAAI,CAAC,MAAM,OAAN,CAAc,KAAd,CAAL,EAA2B;AACzB,aAAQ,CAAE,KAAF,CAAR;AACD;;AAED,UAAO;AACL,iBADK;AAEL;AAFK,IAAP;AAID,EAVM,C;;;;;;;ACAP,gC;;;;;;ACAA,kC;;;;;;ACAA,mC;;;;;;ACAA,yD;;;;;;ACAA,KAAI,OAAO,oBAAQ,CAAR,CAAX;;AAEA,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAiB;AAChC,UAAO;AACL,WAAM,KAAK,OAAL,CAAa,QAAQ,IAArB,CADD;AAEL,eAAU,QAAQ,IAAR,IAAgB;AAFrB,IAAP;AAID,EALD,C;;;;;;ACFA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,iBAAiB,oBAAQ,EAAR,CAArB;;AAEA,UAAS,WAAT,CAAqB,OAArB,EAA8B;AAC5B,UAAO,KAAK,OAAL,CAAa,OAAb,CAAP,C;AACD;;AAED,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAiB;AAChC,UAAO,EAAE,MAAF,CAAS,eAAe,OAAf,CAAT,EAAkC;AACvC,cAAS,CAAC,QAAQ,KAAR,IAAiB,EAAlB,EAAsB,GAAtB,CAA0B,WAA1B;AAD8B,IAAlC,CAAP;AAGD,EAJD,C;;;;;;ACRA,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAkB;AACjC,UAAO;AACL,iBAAY,QAAQ;AADf,IAAP;AAGD,EAJD,C;;;;;;;;ACEA,KAAI,UAAU,oBAAQ,CAAR,CAAd;AACA,KAAI,WAAW,oBAAQ,EAAR,CAAf;AACA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,KAAK,oBAAQ,CAAR,CAAT;;AAEA,KAAM,UAAU,gBAAwB,aAAxC;;AAEA,QAAO,OAAP,GAAiB,UAAS,MAAT,EAAiB,EAAjB,EAAqB;AACpC,OAAI,CAAC,EAAL,EAAS;AAAE,UAAK,cAAW,CAAE,CAAlB;AAAqB;AAChC,UAAO,MAAP,CAAc,OAAd,CAAsB,UAAS,KAAT,EAAgB;AACpC,mBAAc,KAAd,EAAqB,EAArB;AACD,IAFD;AAGD,EALD;;AAOA,UAAS,aAAT,CAAuB,KAAvB,EAA8B,EAA9B,EAAkC;AAChC,OAAI,WAAW,QAAQ,MAAM,aAAd,CAAf;AACA,OAAI,MAAM,KAAV,EAAiB;AACf,cAAS,KAAT,CAAe,EAAf,EAAmB,UAAS,GAAT,EAAc,KAAd,EAAqB;AACtC,mBAAY,MAAM,SAAlB,EAA6B,GAA7B,EAAkC,KAAlC;AACA,UAAG,MAAM,MAAN,EAAH;AACD,MAHD;AAID,IALD,MAKO;AACL,cAAS,GAAT,CAAa,UAAS,GAAT,EAAc,KAAd,EAAqB;AAChC,eAAQ,GAAR,CAAY,MAAM,QAAN,CAAe;AACzB,iBAAQ,CAAC,MAAM,aADU;AAEzB,iBAAQ,KAFiB;AAGzB,kBAAS;AAHgB,QAAf,CAAZ;AAKA,UAAG,MAAM,MAAN,EAAH;AACD,MAPD;AAQD;AACF;;AAED,UAAS,WAAT,CAAqB,KAArB,EAA4B;AAC1B,OAAI,OAAO,MAAM,IAAjB;AACA,OAAI,OAAO,MAAM,IAAjB;AACA,OAAI,UAAU,OAAO,IAArB;;AAEA,OAAI,OAAO,IAAX,EAAiB,UAAU,KAAK,IAAL,CAAU,OAAO,IAAjB,IAAyB,KAAnC;AACjB,OAAI,OAAO,OAAX,EAAoB,UAAU,KAAK,IAAL,CAAU,OAAO,OAAjB,IAA4B,KAAtC;;AAEpB,UAAO,OAAO,IAAP,GAAc,OAAd,GAAwB,GAA/B;AACD;;AAED,UAAS,WAAT,CAAqB,IAArB,EAA2B;AACzB,UAAO,UAAS,GAAT,EAAc,KAAd,EAAqB;AAC1B,SAAI,CAAC,GAAL,EAAU;AACR,eAAQ,GAAR,CAAY,MAAM,QAAN,CAAe;AACzB,iBAAQ,IADiB;AAEzB,iBAAQ,KAFiB;AAGzB,kBAAS;AAHgB,QAAf,CAAZ;;AAMA,WAAI,IAAI,MAAM,MAAN,EAAR;;AAEA,WAAI,EAAE,MAAF,IAAY,EAAE,MAAF,CAAS,MAAzB,EAAiC;AAC/B,kBAAS,MAAT,CAAgB;AACd,oBAAS,OAAO,WADF;AAEd,sBAAW;AAFG,UAAhB;AAID,QALD,MAKO;AACL,kBAAS,MAAT,CAAgB;AACd,oBAAS,OAAO,mBADF;AAEd,sBAAW,EAAE,MAAF,CAAS,GAAT,CAAa,WAAb,EAA0B,IAA1B,CAA+B,IAA/B;AAFG,UAAhB;AAID;AACF;AACF,IAtBD;AAuBD,E;;;;;;ACtED,KAAI,sBAAsB,oBAAQ,EAAR,CAA1B;AACA,KAAI,gCAAgC,oBAAQ,EAAR,CAApC;AACA,KAAI,sBAAsB,oBAAQ,EAAR,CAA1B;AACA,KAAI,gCAAgC,oBAAQ,EAAR,CAApC;AACA,KAAI,uBAAuB,oBAAQ,EAAR,CAA3B;;AAEA,UAAS,QAAT,CAAkB,UAAlB,EAA8B,WAA9B,EAA2C,gBAA3C,EAA6D;AAC3D,UAAO,aAAa,gBAAb,GAAgC,WAAvC;AACD;;AAED,UAAS,eAAT,CAAyB,UAAzB,EAAqC;AACnC,UAAO,SAAS,UAAT,EAAqB,mBAArB,EAA0C,6BAA1C,CAAP;AACD;;AAED,UAAS,eAAT,CAAyB,UAAzB,EAAqC;AACnC,UAAO,SAAS,UAAT,EAAqB,mBAArB,EAA0C,6BAA1C,CAAP;AACD;;AAED,QAAO,OAAP,GAAiB;AACf,2CADe;AAEf,+DAFe;AAGf,2CAHe;AAIf,+DAJe;AAKf,6CALe;AAMf,mCANe;AAOf;AAPe,EAAjB,C;;;;;;AClBA,KAAI,eAAe,oBAAQ,EAAR,CAAnB;;AAEA,QAAO,OAAP,GAAiB,SAAS,sBAAT,CAAgC,GAAhC,EAAqC;AACpD,WAAQ,GAAR,CAAY,2BAAZ,EAAyC,QAAQ,GAAR,EAAzC;AACA,OAAI,QAAQ,aAAa,GAAb,EAAkB,QAAlB,CAAZ;AACA,WAAQ,GAAR,CAAY,cAAc,MAAM,MAApB,GAA6B,OAA7B,IAAwC,MAAM,MAAN,GAAe,CAAf,GAAmB,GAAnB,GAAyB,EAAjE,CAAZ;;AAEA,UAAO,MAAM,MAAN,CAAa,UAAS,IAAT,EAAe,GAAf,EAAoB;AACtC,SAAI,aAAa,IAAI,IAAJ,CAAS,KAAT,CAAe,OAAf,EAAwB,CAAxB,EAA2B,KAA3B,CAAiC,IAAjC,EAAuC,CAAvC,IAA4C,eAA7D;AACA,UAAK,UAAL,IAAmB,IAAI,IAAvB;AACA,YAAO,IAAP;AACD,IAJM,EAIJ,EAJI,CAAP;AAKD,EAVD,C;;;;;;;ACFA;AAAA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,aAAa,oBAAQ,EAAR,CAAjB;AACA,KAAI,YAAY,WAAW,SAA3B;AACA,KAAI,YAAY,WAAW,SAA3B;AACA,KAAI,YAAY,WAAW,SAA3B;AACA,KAAI,cAAc,WAAW,WAA7B;AACA,KAAI,WAAW,WAAW,QAA1B;AACA,KAAI,aAAa,WAAW,UAA5B;AACA;;AAEA,UAAS,SAAT,CAAmB,UAAnB,EAA+B;AAC7B,UAAO,YAAY,WAAW,IAAvB,EACL,WAAW,KADN,EAEL,mBAAmB,WAAW,OAA9B,EAAuC,WAAW,IAAlD,CAFK,CAAP;AAGD;;AAED,UAAS,WAAT,CAAqB,SAArB,EAAgC,KAAhC,EAAuC,aAAvC,EAAsD;AACpD,UAAO;AACL,iBADK;AAEL,yBAFK;AAGL;AAHK,IAAP;AAKD;;AAED,UAAS,kBAAT,CAA4B,eAA5B,EAA6C,SAA7C,EAAwD;AACtD,OAAI,gBAAgB,EAApB;;AAEA,UAAO,IAAP,CAAY,eAAZ,EAA6B,OAA7B,CAAqC,UAAS,GAAT,EAAc;AACjD,SAAI,MAAM,gBAAgB,GAAhB,CAAV;;AAEA,SAAI,QAAQ,SAAZ,EAAuB;AACrB,SAAE,QAAF,CAAW,aAAX,EAA0B,EAAE,QAAQ,EAAE,SAAS,EAAX,EAAV,EAA1B;AACA,qBACE,cAAc,MAAd,CAAqB,OADvB,EAEE,IAAI,GAAJ,CAAQ,SAAR,CAFF;AAID;;AAED,SAAI,QAAQ,SAAZ,EAAuB;AACrB,qBAAc,OAAd,GAAwB,IAAI,GAAJ,CAAQ,SAAR,CAAxB;AACD;;AAED,SAAI,QAAQ,QAAZ,EAAsB;AACpB,qBAAc,MAAd,GAAuB,UAAU,GAAV,CAAvB;AACD;;AAED,SAAI,QAAQ,SAAZ,EAAuB;AACrB,qBAAc,OAAd,GAAwB,YAAY,GAAZ,CAAxB;AACD;;AAED,SAAI,QAAQ,OAAZ,EAAqB;AACnB,qBAAc,KAAd,GAAsB,SAAS,GAAT,EAAc,SAAd,CAAtB;AACD;;AAED,SAAI,QAAQ,SAAZ,EAAuB;AACrB,qBAAc,OAAd,GAAwB,IAAI,GAAJ,CAAQ,UAAR,CAAxB;AACD;;AAED,SAAI,QAAQ,WAAZ,EAAyB;AACvB,qBAAc,SAAd,GAA0B,uFAAa,GAAb,CAA1B;AACD;AACF,IAlCD;;AAoCA,UAAO,EAAE,MAAF,CAAS,aAAT,EAAwB,EAAE,IAAF,CAAO,eAAP,EAC7B,OAAO,IAAP,CAAY,aAAZ,EAA2B,MAA3B,CAAkC,SAAlC,CAD6B,CAAxB,CAAP;AAED;;AAED,UAAS,aAAT,CAAuB,IAAvB,EAA6B,MAA7B,EAAqC;AACnC,UAAO,OAAP,CAAe,UAAS,KAAT,EAAgB;AAAE,UAAK,IAAL,CAAU,KAAV;AAAkB,IAAnD;AACD;;AAED,UAAS,mBAAT,CAA6B,KAA7B,EAAoC,IAApC,EAA0C;AACxC,OAAI,OAAO,KAAP,KAAiB,QAArB,EAA+B;AAC7B,YAAO,KAAK,KAAL,CAAP;AACD;;AAED,UAAO,KAAP;AACD;;AAED,UAAS,sBAAT,CAAgC,KAAhC,EAAuC,MAAvC,EAA+C;AAC7C,UAAO,MAAM,GAAN,CAAU,MAAV,CAAP;AACD;;AAED,QAAO,OAAP,GAAiB;AACf,uBADe;AAEf,2BAFe;AAGf,yCAHe;AAIf;AAJe,EAAjB,C;;;;;;ACnFA;AACA;AACA;AACA,wCAAuC,WAAW;AAClD;AACA;AACA;;;;;;;ACNA,oC;;;;;;ACAA,mC;;;;;;ACAA,mC;;;;;;ACAA,oC;;;;;;ACAA,QAAO,OAAP,GAAiB;AACf,SAAM,QADS;AAEf,YAAS;AACP,cAAS,YADF;AAEP,YAAO,iBAFA;AAGP,aAAQ;AACN,kBAAW,QADL;AAEN,aAAM;AAFA,MAHD;AAOP,cAAS;AACP,kBAAW,iBADJ;AAEP,cAAO,CAAC,KAAD,EAAQ,KAAR,CAFA;AAGP,mBAAY,CAAC,EAAD,EAAK,KAAL,EAAY,MAAZ,EAAoB,SAApB,EAA+B,OAA/B;AAHL,MAPF;AAYP,cAAS,CACP,aADO,EAEP,MAFO,EAGP,KAHO,EAIP,MAJO,CAZF;AAkBP,cAAS,CACP,aADO,EAEP,iBAFO,EAGP;AACE,kBAAW,cADb;AAEE,YAAK;AAFP,MAHO;AAlBF;AAFM,EAAjB,C;;;;;;ACAA,QAAO,OAAP,GAAiB;AACf,SAAM,kBADS;AAEf,YAAS;AACP,cAAS,YADF;AAEP,YAAO,iBAFA;AAGP,aAAQ;AACN,kBAAW,QADL;AAEN,aAAM;AAFA,MAHD;AAOP,cAAS;AACP,kBAAW,iBADJ;AAEP,cAAO,CAAC,KAAD,EAAQ,KAAR,CAFA;AAGP,mBAAY,CAAC,EAAD,EAAK,KAAL,EAAY,MAAZ,EAAoB,SAApB,EAA+B,OAA/B;AAHL,MAPF;AAYP,cAAS,CACP,aADO,EAEP,MAFO,EAGP,KAHO,EAIP,MAJO,CAZF;AAkBP,cAAS,CACP,aADO,EAEP;AACE,kBAAW,cADb;AAEE,YAAK;AAFP,MAFO,EAMP,oBANO,EAOP,sBAPO,EAQP,iBARO;AAlBF;AAFM,EAAjB,C;;;;;;ACAA,QAAO,OAAP,GAAiB;AACf,SAAM,kBADS;AAEf,YAAS;AACP,cAAS,YADF;AAEP,YAAO,iBAFA;AAGP,aAAQ;AACN,kBAAW,QADL;AAEN,aAAM;AAFA,MAHD;AAOP,gBAAW;AACT,kBAAW,cADF;AAET,mBAAY,CAAC,IAAD;AAFH,MAPJ;AAWP,cAAS;AACP,kBAAW,iBADJ;AAEP,cAAO,CAAC,KAAD,EAAQ,KAAR,CAFA;AAGP,mBAAY,CAAC,EAAD,EAAK,KAAL,EAAY,MAAZ,EAAoB,SAApB,EAA+B,OAA/B;AAHL,MAXF;AAgBP,cAAS,CACP,aADO,EAEP,MAFO,EAGP,eAHO,CAhBF;AAqBP,cAAS,CACP,oBADO,EAEP,sBAFO,EAGP,iBAHO,EAIP,sBAJO,CArBF;AA2BP,WAAM;AACJ,eAAQ,KADJ;AAEJ,gBAAS,KAFL;AAGJ,eAAQ,KAHJ;AAIJ,mBAAY,IAJR;AAKJ,kBAAW;AALP;AA3BC;AAFM,EAAjB,C;;;;;;ACAA,QAAO,OAAP,GAAiB;AACf,SAAM,QADS;AAEf,YAAS;AACP,cAAS,YADF;AAEP,YAAO,iBAFA;AAGP,aAAQ;AACN,kBAAW,QADL;AAEN,aAAM;AAFA,MAHD;AAOP,gBAAW;AACT,kBAAW,cADF;AAET,mBAAY,CAAC,IAAD;AAFH,MAPJ;AAWP,cAAS;AACP,kBAAW,iBADJ;AAEP,cAAO,CAAC,KAAD,EAAQ,KAAR,CAFA;AAGP,mBAAY,CAAC,EAAD,EAAK,KAAL,EAAY,MAAZ,EAAoB,SAApB,EAA+B,OAA/B;AAHL,MAXF;AAgBP,cAAS,CACP,aADO,EAEP,MAFO,EAGP,eAHO,CAhBF;AAqBP,cAAS,CACP,iBADO,EAEP,sBAFO,CArBF;AAyBP,WAAM;AACJ,eAAQ,KADJ;AAEJ,gBAAS,KAFL;AAGJ,eAAQ,KAHJ;AAIJ,mBAAY,IAJR;AAKJ,kBAAW,IALP;AAMJ,WAAI;AANA;AAzBC;AAFM,EAAjB,C;;;;;;ACAA,KAAI,IAAI,oBAAQ,CAAR,CAAR;;AAEA,QAAO,OAAP,GAAiB;AACf,SAAM,MADS;AAEf,YAAS;AACP,cAAS,YADF;AAEP,aAAQ;AACN,aAAM,SADA;AAEN,iBAAU;AAFJ,MAFD;AAMP,cAAS;AACP,kBAAW,iBADJ;AAEP,cAAO,CAAC,KAAD,EAAQ,KAAR,CAFA;AAGP,mBAAY,CAAC,EAAD,EAAK,KAAL,EAAY,MAAZ,EAAoB,SAApB,EAA+B,OAA/B;AAHL,MANF;AAWP,cAAS,CACP,aADO,EAEP,MAFO,EAGP,eAHO,CAXF;AAgBP,cAAS,CACP,aADO,EAEP,iBAFO,CAhBF;AAoBP,gBAAW;AACT,kBAAW,cADF;AAET,mBAAY,CAAC,wBAAD;AAFH;AApBJ;AAFM,EAAjB,C;;;;;;;;;;ACFA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA;;AAEA,KAAI,kBAAkB,EAAtB;;AAGA,UAAS,QAAT,CAAkB,YAAlB,EAAgC,SAAhC,EAA2C;;;;;;AAMzC,OAAI,QAAO,YAAP,yCAAO,YAAP,OAAwB,QAA5B,EAAsC;AACpC,YAAO,YAAP;AACD;;AAED,OAAI,cAAc,EAAlB;AACA,eAAY,SAAZ,IAAyB,KAAK,OAAL,CAAa,YAAb,CAAzB;AACA,UAAO,WAAP;AACD;;AAED,QAAO,OAAP,GAAiB;AACf,qBADe;AAEf;AAFe,EAAjB,C;;;;;;;;;;ACtBA;;AAEA,KAAM,aAAa,cAAnB;;AAEO,KAAM,eAAe,SAAf,YAAe,YAAa;AACvC,OAAI,OAAO,SAAP,KAAqB,QAAzB,EAAmC;AACjC,SAAI,cAAc,UAAlB,EAA8B;AAC5B,cAAO,gFAAP;AACD;;AAED,WAAM,IAAI,KAAJ,mDAA0D,UAA1D,QAAN;AACD;;AAED,OAAI,QAAO,SAAP,yCAAO,SAAP,OAAqB,QAAzB,EAAmC;AACjC,SAAI,UAAU,SAAV,KAAwB,UAA5B,EAAwC;AACtC,cAAO,+EAAgB,UAAU,UAA1B,CAAP;AACD;;AAED,YAAO,SAAP;AACD;AACF,EAhBM,C;;;;;;;;;;;ACJP;;AAEA,KAAM,kBAAkB,SAAlB,eAAkB,CAAC,OAAD,EAAU,IAAV,EAAmB;AACzC,WAAQ,IAAR,kBAA4B,IAA5B;AACA,UAAO,OAAP;AACD,EAHD;;AAKA,KAAM,mBAAmB,CACvB,OADuB,EACd,YADc,EACA,MADA,EACQ,UADR,EACoB,MADpB,EAC4B,MAD5B,EAEvB,QAFuB,EAEb,QAFa,EAEH,KAFG,EAEI,QAFJ,EAEc,MAFd,EAEsB,YAFtB,EAEoC,SAFpC,EAGvB,GAHuB,CAGnB;AAAA,sBAAkB,IAAlB;AAAA,EAHmB,CAAzB;;AAKO,KAAM,kBAAkB,SAAlB,eAAkB,aAAc;AAC3C,OAAM,cAAc,EAApB;;AAEA,kEAAG,WAAH,CAAe,cAAf,EACG,MADH,CACU,UAAS,CAAT,EAAY;AAAE,YAAO,CAAC,MAAD,EAAS,OAAT,CAAiB,CAAjB,MAAwB,CAAC,CAAhC;AAAoC,IAD5D,EAEG,MAFH,CAEU,eAFV,EAE2B,WAF3B;;AAIA,OAAI,UAAJ,EAAgB;AACd,gBAAW,MAAX,CAAkB,eAAlB,EAAmC,WAAnC;AACD;;AAED,OAAI,YAAY,MAAhB,EAAwB;AACtB,sBAAiB,MAAjB,CAAwB,eAAxB,EAAyC,WAAzC;AACD;;AAED,UAAO,WAAP;AACD,EAhBM,C;;;;;;;ACZP,KAAI,YAAY,oBAAQ,EAAR,EAAqB,SAArC;AACA,KAAI,YAAY,oBAAQ,EAAR,EAAqB,SAArC;AACA,KAAI,YAAY,oBAAQ,EAAR,EAAoB,SAApC;AACA,KAAI,cAAc,oBAAQ,EAAR,EAAsB,WAAxC;AACA,KAAI,WAAW,oBAAQ,EAAR,EAAmB,QAAlC;AACA,KAAI,aAAa,oBAAQ,EAAR,EAAqB,UAAtC;;AAEA,QAAO,OAAP,GAAiB;AACf,uBADe;AAEf,uBAFe;AAGf,uBAHe;AAIf,2BAJe;AAKf,qBALe;AAMf;AANe,EAAjB,C;;;;;;;;;;;ACPA;;AAEA;;AAEA,6CAAe,uFAAU,KAAV,EAAiB;AAC9B,SAAM,QADwB;AAE9B,WAAQ,wFAAkB,OAAlB,CAA0B,cAA1B,EAA0C,2BAA1C;AAFsB,EAAjB,CAAf,C;;;;;;;;ACJA;;AAEA,6CAAe,uFAAU,CAAC,aAAD,EAAgB,aAAhB,CAAV,EAA0C;AACvD,SAAM,yBADiD;AAEvD,YAAS,cAF8C;AAGvD,WAAQ,OAH+C;AAIvD,UAAO;AACL,cAAS,CACP,uBADO,EAEP,SAFO,EAGP,OAHO,CADJ;AAML,cAAS,CACP,4BADO,EAEP,mCAFO,EAGP,iCAHO,EAIP,QAJO;AANJ;AAJgD,EAA1C,CAAf,C;;;;;;;;ACFA;;AAEA,6CAAe,uFAAU,eAAV,EAA2B;AACxC,SAAM,gBADkC;AAExC,WAAQ;AAFgC,EAA3B,CAAf,C;;;;;;;;ACFA;;AAEA,6CAAe,uFAAU,MAAV,EAAkB;AAC/B,SAAM,SADyB;AAE/B,WAAQ;AAFuB,EAAlB,CAAf,C;;;;;;;;;;;ACFA;;AAEA;;AAEA,6CAAe,uFAAU,MAAV,EAAkB;AAC/B,SAAM,SADyB;AAE/B,WAAQ,wFAAkB,OAAlB,CAA0B,cAA1B,EAA0C,uCAA1C;AAFuB,EAAlB,CAAf,C;;;;;;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA;;AAEO,KAAM,YAAY,uFAAgB,QAAhB,EAA0B,CACjD,2DADiD,EAEjD,mEAFiD,EAGjD,oEAHiD,EAIjD,4DAJiD,EAKjD,4DALiD,CAA1B,CAAlB,C;;;;;;;ACRP,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,eAAe,oBAAQ,CAAR,CAAnB;;AAEA,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAkB;AACjC,UAAO,EAAE,MAAF,CAAS,aAAa,OAAb,CAAT,EAAgC;AACrC,cAAS,QAAQ,WAAR,IAAuB,WADK;AAErC,oBAAe,QAAQ,MAAR,IAAkB;AAFI,IAAhC,CAAP;AAID,EALD,C;;;;;;;ACHA;AAAA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA;;AAEA,KAAI,eAAe,oBAAQ,CAAR,CAAnB;AACA,KAAI,gBAAgB,oBAAQ,EAAR,CAApB;;AAEA,UAAS,eAAT,CAAyB,MAAzB,EAAiC;AAC/B,UAAO,UAAS,OAAT,EAAkB;AACvB,YAAO,cAAc,EAAE,MAAF,CAAS,OAAT,EAAkB;AACrC,eAAQ;AAD6B,MAAlB,CAAd,CAAP;AAGD,IAJD;AAKD;;AAED,KAAI,UAAU;AACZ,WAAQ,YADI;AAEZ,YAAS,aAFG;AAGZ,SAAM,gBAAgB,MAAhB,CAHM;AAIZ,aAAU,gBAAgB,UAAhB,CAJE;AAKZ,cAAW,gBAAgB,WAAhB,CALC;AAMZ,QAAK,gBAAgB,KAAhB,CANO;AAOZ,QAAK,gBAAgB,KAAhB;AAPO,EAAd;;AAUA,KAAI,YAAY,SAAZ,SAAY,CAAS,UAAT,EAAqB;AACnC,UAAO,uFAAmB,UAAnB,EAA+B,OAA/B,EAAwC,QAAxC,CAAP;AACD,EAFD;;AAIA,QAAO,OAAP,GAAiB;AACf,mBADe;AAEf;AAFe,EAAjB,C;;;;;;AC5BA,KAAI,UAAU,oBAAQ,CAAR,CAAd;;AAEA,QAAO,OAAP,GAAiB,IAAI,QAAQ,cAAZ,EAAjB,C;;;;;;ACFA,KAAI,UAAU,oBAAQ,CAAR,CAAd;;AAEA,QAAO,OAAP,GAAiB,IAAI,QAAQ,QAAR,CAAiB,kBAArB,CAAwC;AACtD,UAAM,QADgD;AAEtD,eAAW,QAF2C;AAGtD,cAAU;AAH4C,EAAxC,CAAjB,C;;;;;;ACFA,KAAI,UAAU,oBAAQ,CAAR,CAAd;;AAEA,QAAO,OAAP,GAAiB,IAAI,QAAQ,mBAAZ,CAAgC;AAC/C,aAAU,IADqC;AAE/C,UAAO;AAFwC,EAAhC,CAAjB,C;;;;;;ACFA,KAAI,oBAAoB,oBAAQ,CAAR,CAAxB;;AAEA,QAAO,OAAP,GAAiB,IAAI,iBAAJ,CAAsB,YAAtB,CAAjB,C;;;;;;ACFA,KAAI,UAAU,oBAAQ,CAAR,CAAd;;AAEA,QAAO,OAAP,GAAiB,IAAI,QAAQ,QAAR,CAAiB,cAArB,CAAoC;AACnD,aAAU;AACR,eAAU;AADF,IADyC;AAInD,WAAQ;AACN,eAAU;AADJ,IAJ2C;AAOnD,cAAW;AAPwC,EAApC,CAAjB,C;;;;;;ACFA,KAAI,UAAU,oBAAQ,CAAR,CAAd;;AAEA,QAAO,OAAP,GAAiB,IAAI,QAAQ,YAAZ,CAAyB;AACxC,WAAQ,0CADgC;AAExC,QAAK,IAFmC;AAGxC,cAAW;AAH6B,EAAzB,CAAjB,C;;;;;;ACFA,KAAI,UAAU,oBAAQ,CAAR,CAAd;;AAEA,KAAI,UAAU,gBAAwB,YAAtC;AACA,KAAI,MAAM,YAAmB,QAA7B;;AAEA,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAkB;AACjC,UAAO,IAAI,QAAQ,YAAZ,CAAyB;AAC9B,oBAAe;AACb,iBAAU,KAAK,SAAL,CAAe,QAAQ,OAAR,IAAmB,OAAlC,CADG;AAEb,YAAK,KAAK,SAAL,CAAe,QAAQ,GAAR,IAAe,GAA9B;AAFQ;AADe,IAAzB,CAAP;AAMD,EAPD,C;;;;;;;;ACLA;AACA,KAAI,sBAAsB,oBAAQ,EAAR,CAA1B;AACA,KAAI,2BAA2B,oBAAQ,EAAR,CAA/B;AACA,KAAI,gCAAgC,oBAAQ,EAAR,CAApC;AACA,KAAI,mBAAmB,oBAAQ,EAAR,CAAvB;AACA,KAAI,2BAA2B,oBAAQ,EAAR,CAA/B;AACA,KAAI,2BAA2B,oBAAQ,EAAR,CAA/B;AACA,KAAI,2BAA2B,oBAAQ,EAAR,CAA/B;;AAEA,KAAI,UAAU;AACZ,sBAAmB,mBADP;AAEZ,oBAAiB,wBAFL;AAGZ,kBAAe,gBAHH;AAIZ,yBAAsB,6BAJV;AAKZ,2BAAwB,wBALZ;AAMZ,2BAAwB,wBANZ;AAOZ,mBAAgB;AAPJ,EAAd;;AAUA,UAAS,SAAT,CAAmB,UAAnB,EAA+B;AAC7B,UAAO,uFAAmB,UAAnB,EAA+B,OAA/B,EAAwC,QAAxC,CAAP;AACD;;AAED,QAAO,OAAP,GAAiB;AACf,mBADe;AAEf;AAFe,EAAjB,C;;;;;;ACvBA,KAAI,eAAe,oBAAQ,EAAR,CAAnB;;AAEA,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAkB;AACjC,UAAO,aAAa,EAAE,UAAU,CAAC,UAAU,QAAQ,WAAlB,GAAgC,WAAjC,CAAZ,EAAb,CAAP;AACD,EAFD,C;;;;;;;;ACFA;AACA,KAAI,sBAAsB,oBAAQ,EAAR,CAA1B;;AAEA,KAAI,eAAe;AACjB,0BAAuB,mBADN;AAEjB,mBAAgB,oBAAoB,EAAE,aAAa,CAAf,EAApB;AAFC,EAAnB;;AAKA,KAAI,aAAa,SAAb,UAAa,CAAS,eAAT,EAA0B;AACzC,UAAO,uFAAmB,eAAnB,EAAoC,YAApC,EAAkD,cAAlD,CAAP;AACD,EAFD;;AAIA,QAAO,OAAP,GAAiB;AACf,6BADe;AAEf;AAFe,EAAjB,C;;;;;;ACZA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,kBAAkB,oBAAQ,CAAR,CAAtB;;AAEA,QAAO,OAAP,GAAiB,UAAS,OAAT,EAAiB;AAChC,OAAI,SAAS,gBAAgB,OAAhB,CAAb;AACA,UAAO,OAAP,GAAiB,OAAO,OAAP,CAAe,MAAf,CAAsB,cAAtB,CAAjB;AACA,UAAO,MAAP;AACD,EAJD,C;;;;;;;;ACHA;;AAEA,KAAI,iBAAiB,oBAAQ,EAAR,CAArB;AACA,KAAI,kBAAkB,oBAAQ,CAAR,CAAtB;AACA,KAAI,wBAAwB,oBAAQ,EAAR,CAA5B;;AAEA,KAAI,YAAY;AACd,aAAU,cADI;AAEd,cAAW,eAFG;AAGd,sBAAmB;AAHL,EAAhB;;AAMA,UAAS,WAAT,CAAqB,YAArB,EAAmC;AACjC,UAAO,uFAAmB,YAAnB,EAAiC,SAAjC,EAA4C,UAA5C,CAAP;AACD;;AAED,QAAO,OAAP,GAAiB;AACf,uBADe;AAEf;AAFe,EAAjB,C;;;;;;AChBA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,KAAK,oBAAQ,CAAR,CAAT;;AAEA,QAAO,OAAP,GAAiB,SAAS,YAAT,CAAsB,GAAtB,EAA2B,GAA3B,EAAgC;AAC/C,OAAI,IAAI,OAAJ,CAAY,cAAZ,IAA8B,CAAC,CAAnC,EAAsC;AAAE;AAAS;AACjD,OAAI,IAAI,OAAJ,CAAY,MAAZ,IAAsB,CAAC,CAA3B,EAA8B;AAAE;AAAS;;AAEzC,OAAI,QAAQ,EAAZ;AACA,OAAI;AACF,aAAQ,GAAG,WAAH,CAAe,GAAf,CAAR;AACD,IAFD,CAEE,OAAO,CAAP,EAAU;AACV,aAAQ,EAAR;AACD;;AAED,UAAO,MACJ,GADI,CACA,UAAS,IAAT,EAAe;AAClB,SAAI,OAAO,MAAM,IAAjB;;AAEA,SAAI;AACF,WAAI,QAAQ,GAAG,QAAH,CAAY,IAAZ,CAAZ;AACA,WAAI,MAAM,WAAN,EAAJ,EAAyB;AAAE,gBAAO,aAAa,OAAO,GAApB,EAAyB,GAAzB,CAAP;AAAuC;AAClE,WAAI,KAAK,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AAAE,gBAAO,EAAE,UAAF,EAAQ,UAAR,EAAP;AAAwB;AACtD,cAAO,IAAP;AACD,MALD,CAMA,OAAO,CAAP,EAAU;AACR,cAAO,IAAP;AACD;AACF,IAbI,EAcJ,MAdI,CAcG,UAAS,CAAT,EAAY;AAAE,YAAO,CAAP;AAAW,IAd5B,EAeJ,MAfI,CAeG,UAAS,IAAT,EAAe,GAAf,EAAoB;AAC1B,SAAI,EAAE,OAAF,CAAU,GAAV,CAAJ,EAAoB;AAClB,cAAO,KAAK,MAAL,CAAY,GAAZ,CAAP;AACD,MAFD,MAEO;AACL,cAAO,KAAK,MAAL,CAAY,CAAC,GAAD,CAAZ,CAAP;AACD;AACF,IArBI,EAqBF,EArBE,CAAP;AAsBD,EAjCD,C;;;;;;ACHA,KAAI,IAAI,oBAAQ,CAAR,CAAR;AACA,KAAI,KAAK,oBAAQ,CAAR,CAAT;AACA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,QAAQ,oBAAQ,EAAR,EAAiB,YAAjB,CAAZ;AACA,KAAI,QAAQ,oBAAQ,EAAR,CAAZ;AACA,KAAI,SAAS,oBAAQ,EAAR,CAAb;AACA,KAAI,SAAS,oBAAQ,EAAR,CAAb;;AAEA,KAAI,QAAQ,oBAAQ,EAAR,CAAZ;AACA,KAAI,YAAY,oBAAQ,EAAR,EAA4B,SAA5C;AACA,KAAI,UAAU,oBAAQ,EAAR,CAAd;AACA,KAAI,yBAAyB,oBAAQ,EAAR,CAA7B;;AAEA,KAAI,QAAQ,oBAAQ,CAAR,CAAZ;;AAEA,KAAI,OAAO,oBAAQ,CAAR,EACR,KADQ,CACF,GADE,EACG,gBADH,EAEN,QAFM,CAEG,GAFH,EAEQ,mEAFR,EAGN,OAHM,CAGE,GAHF,EAGO,wBAHP,EAIR,KAJQ,CAIF,GAJE,EAIG,YAJH,EAKN,QALM,CAKG,GALH,EAKQ,0DALR,EAMN,OANM,CAME,GANF,EAMO,KANP,EAOR,KAPQ,CAOF,GAPE,EAOG,QAPH,EAQN,QARM,CAQG,GARH,EAQQ,wHARR,EASN,OATM,CASE,GATF,EASO,KATP,EAUR,KAVQ,CAUF,GAVE,EAUG,QAVH,EAWN,QAXM,CAWG,GAXH,EAWQ,uHAXR,EAYN,OAZM,CAYE,GAZF,EAYO,KAZP,EAaR,KAbQ,CAaF,GAbE,EAaG,iBAbH,EAcN,QAdM,CAcG,GAdH,EAcQ,yGAdR,EAeN,OAfM,CAeE,GAfF,EAeO,IAfP,EAgBR,KAhBQ,CAgBF,GAhBE,EAgBG,OAhBH,EAiBN,QAjBM,CAiBG,GAjBH,EAiBQ,8CAjBR,EAkBN,OAlBM,CAkBE,GAlBF,EAkBO,KAlBP,EAmBR,KAnBQ,CAmBF,GAnBE,EAmBG,kBAnBH,EAoBN,QApBM,CAoBG,gFApBH,EAqBN,OArBM,CAqBE,GArBF,EAqBO,KArBP,EAsBR,KAtBQ,CAsBF,GAtBE,EAsBG,SAtBH,EAuBN,QAvBM,CAuBG,oCAvBH,EAwBN,OAxBM,CAwBE,GAxBF,EAwBO,KAxBP,EAyBR,IAzBH;;AA2BA,SAAQ,GAAR,CAAY,uBAAZ,EAAqC,KAAK,cAA1C;AACA,SAAQ,GAAR,CAAY,QAAZ,EAAsB,QAAQ,GAAR,EAAtB;;AAEA,UAAS,kBAAT,CAA4B,UAA5B,EAAwC;AACtC,OAAI;AACF,aAAQ,GAAR,CAAY,6BAAZ,EAA2C,UAA3C;AACA,SAAI,SAAS,6HAAb;AACA,aAAQ,GAAR,CAAY,SAAZ,EAAuB,MAAvB;AACA,SAAI,CAAC,MAAM,OAAN,CAAc,MAAd,CAAL,EAA4B;AAC1B,WAAI,OAAO,UAAP,KAAsB,IAA1B,EAAgC;AAC9B,gBAAO,EAAE,YAAY,EAAE,IAAF,CAAO,MAAP,EAAe,YAAf,CAAd,EAAP;AACD;AACD,gBAAS,CAAC,MAAD,CAAT;AACD;;AAED,YAAO,EAAE,cAAF,EAAP;AACD,IAZD,CAYE,OAAO,CAAP,EAAU;AACV,WAAM,CAAN;AACA,YAAO,EAAP;AACD;AACF;;AAED,UAAS,eAAT,CAAyB,MAAzB,EAAiC,UAAjC,EAA6C;AAC3C,OAAI,MAAM,cAAc,EAAxB;AACA,WAAQ,GAAR,CAAY,wBAAZ,EAAsC,UAAtC;AACA,UAAO,OAAO,GAAP,CAAW,UAAS,KAAT,EAAgB;AAAE,YAAO,EAAE,KAAF,CAAQ,KAAR,EAAe,GAAf,CAAP;AAA8B,IAA3D,CAAP;AACD;;AAED,UAAS,UAAT,CAAoB,MAApB,EAA4B,UAA5B,EAAwC;AACtC,UAAO,EAAE,QAAQ,gBAAgB,MAAhB,EAAwB,UAAxB,EAAoC,GAApC,CAAwC,SAAxC,CAAV,EAAP;AACD;;AAED,KAAI,SAAS,EAAb;AACA,KAAI,aAAa,EAAjB;;AAEA,KAAI,KAAK,cAAL,IAAuB,CAAC,KAAK,gBAAjC,EAAmD;AACjD,OAAI,aAAa,mBAAmB,KAAK,cAAxB,CAAjB;AACA,OAAI,WAAW,UAAf,EAA2B;AACzB,kBAAa,WAAW,UAAxB;AACD,IAFD,MAEO,IAAI,WAAW,MAAX,IAAqB,WAAW,MAAX,CAAkB,MAA3C,EAAmD;AACxD,cAAS,WAAW,MAApB;AACD;AACF;;AAED,UAAS,kBAAT,GAA8B;AAC5B,WAAQ,GAAR,CAAY,0BAAZ;AACA,OAAI,KAAK,OAAT,EAAkB;AAChB,aAAQ,GAAR,CAAY,sBAAZ;AACA,cAAS,CAAE,QAAQ,oBAAV,CAAT;AACA,YAAO,CAAP,EAAU,OAAV,CAAkB,KAAlB,GAA0B,uBAAuB,IAAvB,CAA1B;AACD,IAJD,MAIO,IAAI,KAAK,MAAT,EAAiB;AACtB,aAAQ,GAAR,CAAY,WAAZ;AACA,cAAS,CAAE,QAAQ,eAAR,CAAwB,KAAK,UAA7B,CAAF,CAAT;AACD,IAHM,MAGA,IAAI,KAAK,MAAT,EAAiB;AACtB,aAAQ,GAAR,CAAY,WAAZ;AACA,cAAS,CAAE,QAAQ,eAAR,CAAwB,KAAK,UAA7B,CAAF,CAAT;AACD,IAHM,MAGA,IAAI,KAAK,eAAT,EAA0B;AAC/B,aAAQ,GAAR,CAAY,SAAZ;AACA,cAAS,CACP,QAAQ,eAAR,CAAwB,KAAK,UAA7B,CADO,EAEP,QAAQ,eAAR,CAAwB,KAAK,UAA7B,CAFO,CAAT;AAID;AACF;;AAED,KAAI,CAAC,OAAO,MAAZ,EAAoB;AAClB;AACD;;AAED,KAAI,KAAK,KAAT,EAAgB;AACd,cAAW,KAAX,GAAmB,IAAnB;AACD;;AAED,OAAM,WAAW,MAAX,EAAmB,UAAnB,CAAN,EAAsC,UAAS,KAAT,EAAgB;AACpD,OAAI,MAAM,MAAN,IAAgB,MAAM,MAAN,CAAa,MAAb,GAAsB,CAAtC,IAA2C,CAAC,KAAK,KAArD,EAA4D;AAC1D,aAAQ,GAAR,CAAY,OAAO,GAAP,CACV,2BADU,CAAZ;;AAIA,aAAQ,IAAR,CAAa,CAAb;AACD;;AAED,OAAI,KAAK,OAAT,EAAkB;AAChB,aAAQ,GAAR,CAAY,OAAO,OAAP,CACV,wCACA,qCADA,GAEA,qCAHU,CAAZ;;AAMA,SAAI,IAAI,IAAI,KAAJ,EAAR;AACA,WAAM,MAAN,CAAa,OAAb,CAAqB,UAAS,KAAT,EAAgB;AACnC,WAAI,OAAO,aAAa,MAAM,IAA9B;AACA,SAAE,OAAF,CAAU,IAAV;AACD,MAHD;AAIA,OAAE,GAAF,GACG,EADH,CACM,KADN,EACa,YAAW;AACpB,cAAO,UAAP,EAAmB,YAAW,CAAE,CAAhC;AACD,MAHH;AAID;AACF,EA1BD,E;;;;;;ACnHA,0C;;;;;;ACAA,2C;;;;;;ACAA,2C","file":"blueprints.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 50);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap dd92b9d32cc48b271fbb\n **/","module.exports = require(\"lodash\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"lodash\"\n ** module id = 0\n ** module chunks = 0\n **/","module.exports = require(\"webpack\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"webpack\"\n ** module id = 1\n ** module chunks = 0\n **/","import { omit } from 'lodash/object';\n\nconst applyGenerators = (loaders, generator) => {\n generator.names.forEach(name => {\n loaders[name] = generator.objectOrFunction;\n });\n\n return loaders;\n};\n\nexport const generatorLoader = (thingKind, generators) => {\n const loaders = generators.reduce((prev, generator) => applyGenerators({...prev}, generator), {});\n return (loaderName) => tryToLoadGenerator(loaderName, loaders, thingKind);\n};\n\nexport const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => {\n const parsed = parseNameOrObject(nameOrObject);\n if (!parsed) {\n return nameOrObject;\n }\n\n const thing = lookupTable[parsed.name];\n if (!thing) {\n throw new Error(`Failed to resolve ${nameOrObject} - ${thingKind}`);\n }\n\n if (typeof thing === 'function') {\n return thing(parsed.options);\n }\n\n return thing;\n};\n\nconst parseNameOrObject = (nameOrObject) => {\n if (typeof nameOrObject === 'string') {\n return { name: nameOrObject, options: {} };\n }\n\n if (typeof nameOrObject === 'object') {\n const name = nameOrObject.generator;\n if (typeof name === 'string') {\n return { name, options: omit(nameOrObject, 'name') };\n }\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/tryToLoad.js\n **/","export const Generator = (nameOrNames, objectOrFunction) => {\n let names =nameOrNames;\n if (!Array.isArray(names)) {\n names = [ names ];\n }\n\n return {\n names,\n objectOrFunction,\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/Generator.js\n **/","module.exports = require(\"fs\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"fs\"\n ** module id = 4\n ** module chunks = 0\n **/","module.exports = require(\"path\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"path\"\n ** module id = 5\n ** module chunks = 0\n **/","module.exports = require(\"yargs\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"yargs\"\n ** module id = 6\n ** module chunks = 0\n **/","module.exports = require(\"extract-text-webpack-plugin\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"extract-text-webpack-plugin\"\n ** module id = 7\n ** module chunks = 0\n **/","var path = require('path');\n\nmodule.exports = function(options){\n return {\n path: path.resolve(options.dest),\n filename: options.name || '[name].js',\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/output/SimpleOutput.js\n **/","var _ = require('lodash');\nvar path = require('path');\nvar SimpleResolver = require('./SimpleResolver');\n\nfunction resolvePath(strPath) {\n return path.resolve(strPath); // path.resolve seems to have a binding issue;\n}\n\nmodule.exports = function(options){\n return _.extend(SimpleResolver(options), {\n modules: (options.paths || []).map(resolvePath),\n });\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/ModulesResolver.js\n **/","module.exports = function(options) {\n return {\n extensions: options.extensions,\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/SimpleResolver.js\n **/","/* eslint-disable */\n\nvar webpack = require('webpack');\nvar notifier = require('node-notifier');\nvar _ = require('lodash');\nvar fs = require('fs');\n\nconst nodeEnv = process.env.NODE_ENV || 'development';\n\nmodule.exports = function(config, cb) {\n if (!cb) { cb = function() {}; }\n config.builds.forEach(function(build) {\n exectuteBuild(build, cb);\n });\n}\n\nfunction exectuteBuild(build, cb) {\n var compiler = webpack(build.webpackConfig);\n if (build.watch) {\n compiler.watch({}, function(err, stats) {\n outputBuild(build.buildName)(err, stats);\n cb(stats.toJson());\n });\n } else {\n compiler.run(function(err, stats) {\n console.log(stats.toString({\n colors: !build.disableColors,\n chunks: false,\n version: false,\n }));\n cb(stats.toJson());\n });\n }\n}\n\nfunction formatAsset(asset) {\n var name = asset.name;\n var size = asset.size;\n var sizeStr = size + \" B\";\n\n if (size > 1000) sizeStr = Math.ceil(size / 1000) + \" kB\";\n if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + \" MB\";\n\n return name + \" [\" + sizeStr + \"]\";\n}\n\nfunction outputBuild(type) {\n return function(err, stats) {\n if (!err) {\n console.log(stats.toString({\n colors: true,\n chunks: false,\n version: false,\n }));\n\n var s = stats.toJson();\n\n if (s.errors && s.errors.length) {\n notifier.notify({\n \"title\": type + \" – ERROR!\",\n \"message\": \"Check the console for errors\",\n });\n } else {\n notifier.notify({\n \"title\": type + \" – Build complete\",\n \"message\": s.assets.map(formatAsset).join(\"\\n\"),\n });\n }\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/build.js\n **/","var DefaultClientConfig = require('./DefaultClientConfig');\nvar DefaultProductionClientConfig = require('./DefaultProductionClientConfig');\nvar DefaultServerConfig = require('./DefaultServerConfig');\nvar DefaultProductionServerConfig = require('./DefaultProductionServerConfig');\nvar DefaultTestingConfig = require('./DefaultTestingConfig');\n\nfunction getBuild(production, debugConfig, productionConfig) {\n return production ? productionConfig : debugConfig;\n}\n\nfunction getClientConfig(production) {\n return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig);\n}\n\nfunction getServerConfig(production) {\n return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig);\n}\n\nmodule.exports = {\n DefaultClientConfig,\n DefaultProductionClientConfig,\n DefaultServerConfig,\n DefaultProductionServerConfig,\n DefaultTestingConfig,\n getClientConfig,\n getServerConfig,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/index.js\n **/","var getTestFiles = require('./getTestFiles');\n\nmodule.exports = function getWebpackEntryForTest(dir) {\n console.log(' Searching for tests in', process.cwd());\n var files = getTestFiles(dir, '.test.');\n console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : ''));\n\n return files.reduce(function(prev, cur) {\n var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest';\n prev[moduleName] = cur.path;\n return prev;\n }, {});\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/getWebpackEntryForTest.js\n **/","var _ = require('lodash');\nvar generators = require('./generators');\nvar getLoader = generators.getLoader;\nvar getPlugin = generators.getPlugin;\nvar getOutput = generators.getOutput;\nvar getResolver = generators.getResolver;\nvar getEntry = generators.getEntry;\nvar getPostCSS = generators.getPostCSS;\nimport { getExternals } from 'lib/generators/externals';\n\nfunction makeBuild(shortBuild) {\n return buildObject(shortBuild.name,\n shortBuild.watch,\n parseWebpackConfig(shortBuild.webpack, shortBuild.name))\n}\n\nfunction buildObject(buildName, watch, webpackConfig) {\n return {\n watch,\n buildName,\n webpackConfig,\n };\n}\n\nfunction parseWebpackConfig(shortHandConfig, buildName) {\n var webpackConfig = {};\n\n Object.keys(shortHandConfig).forEach(function(key) {\n var obj = shortHandConfig[key];\n\n if (key === 'loaders') {\n _.defaults(webpackConfig, { module: { loaders: [] }});\n concatInPlace(\n webpackConfig.module.loaders,\n obj.map(getLoader)\n );\n }\n\n if (key === 'plugins') {\n webpackConfig.plugins = obj.map(getPlugin);\n }\n\n if (key === 'output') {\n webpackConfig.output = getOutput(obj);\n }\n\n if (key === 'resolve') {\n webpackConfig.resolve = getResolver(obj);\n }\n\n if (key === 'entry') {\n webpackConfig.entry = getEntry(obj, buildName);\n }\n\n if (key === 'postcss') {\n webpackConfig.postcss = obj.map(getPostCSS);\n }\n\n if (key === 'externals') {\n webpackConfig.externals = getExternals(obj);\n }\n });\n\n return _.extend(webpackConfig, _.omit(shortHandConfig,\n Object.keys(webpackConfig).concat('loaders')));\n}\n\nfunction concatInPlace(dest, source) {\n source.forEach(function(thing) { dest.push(thing) });\n}\n\nfunction loadNameOrUseSource(thing, load) {\n if (typeof thing === 'string') {\n return load(thing);\n }\n\n return thing;\n}\n\nfunction mapLoadNameOrUseSource(array, loader) {\n return array.map(loader);\n}\n\nmodule.exports = {\n makeBuild,\n buildObject,\n parseWebpackConfig,\n loadNameOrUseSource,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/makeBuild.js\n **/","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 15;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src\n ** module id = 15\n ** module chunks = 0\n **/","module.exports = require(\"colors\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"colors\"\n ** module id = 16\n ** module chunks = 0\n **/","module.exports = require(\"debug\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"debug\"\n ** module id = 17\n ** module chunks = 0\n **/","module.exports = require(\"mocha\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"mocha\"\n ** module id = 18\n ** module chunks = 0\n **/","module.exports = require(\"rimraf\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"rimraf\"\n ** module id = 19\n ** module chunks = 0\n **/","module.exports = {\n name: 'Client',\n webpack: {\n devtool: 'source-map',\n entry: './src/Client.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json'],\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'css',\n 'less',\n ],\n plugins: [\n 'extract-css',\n 'abort-if-errors',\n {\n generator: 'set-node-env',\n env: 'client',\n },\n ],\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultClientConfig.js\n **/","module.exports = {\n name: 'ProductionClient',\n webpack: {\n devtool: 'source-map',\n entry: './src/Client.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json']\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'css',\n 'less',\n ],\n plugins: [\n 'extract-css',\n {\n generator: 'set-node-env',\n env: 'client',\n },\n 'production-loaders',\n 'minify-and-treeshake',\n 'abort-if-errors',\n ],\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultProductionClientConfig.js\n **/","module.exports = {\n name: 'ProductionServer',\n webpack: {\n devtool: 'source-map',\n entry: './src/Server.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n externals: {\n generator: 'node-modules',\n additional: ['os'],\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json']\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'ignore-styles',\n ],\n plugins: [\n 'production-loaders',\n 'minify-and-treeshake',\n 'abort-if-errors',\n 'node-load-sourcemaps',\n ],\n node: {\n Buffer: false,\n process: false,\n global: false,\n __filename: true,\n __dirname: true,\n },\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultProductionServerConfig.js\n **/","module.exports = {\n name: 'Server',\n webpack: {\n devtool: 'source-map',\n entry: './src/Server.js',\n output: {\n generator: 'simple',\n dest: './bin',\n },\n externals: {\n generator: 'node-modules',\n additional: ['os'],\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json']\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'ignore-styles',\n ],\n plugins: [\n 'abort-if-errors',\n 'node-load-sourcemaps',\n ],\n node: {\n Buffer: false,\n process: false,\n global: false,\n __filename: true,\n __dirname: true,\n os: false,\n },\n },\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultServerConfig.js\n **/","var _ = require('lodash');\n\nmodule.exports = {\n name: 'Test',\n webpack: {\n devtool: 'source-map',\n output: {\n path: './.test',\n filename: '[name]',\n },\n resolve: {\n generator: 'npm-and-modules',\n paths: ['src', 'lib'],\n extensions: ['', '.js', '.jsx', '.es6.js', '.json'],\n },\n loaders: [\n 'esnextreact',\n 'json',\n 'ignore-styles',\n ],\n plugins: [\n 'extract-css',\n 'abort-if-errors',\n ],\n externals: {\n generator: 'node-modules',\n additional: ['@r/platform/createTest'],\n },\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/configs/DefaultTestingConfig.js\n **/","var path = require('path');\nvar _ = require('lodash');\nimport { tryToLoadGenerator } from 'lib/generators/tryToLoad';\n\nvar entryGenerators = {\n};\n\nfunction getEntry(pathOrObject, buildName) {\n // for now takes the path to the file, and the build name and makes\n // the entry point object. in the future we can do things like auto traverers\n // the module paths you're resolving and generate tree-shaking-less umd ready builds\n // but if everything internal is using the build project its a little pointless\n // return tryToLoadGenerator(entryName, entryGenerators, 'entry');\n if (typeof pathOrObject === 'object') {\n return pathOrObject;\n }\n\n var entryConfig = {};\n entryConfig[buildName] = path.resolve(pathOrObject);\n return entryConfig;\n};\n\nmodule.exports = {\n getEntry,\n entryGenerators,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/entry/index.js\n **/","import { loadNodeModules } from './loadNodeModules';\n\nconst loaderName = 'node-modules';\n\nexport const getExternals = externals => {\n if (typeof externals === 'string') {\n if (externals === loaderName) {\n return loadNodeModules();\n }\n\n throw new Error(`Invalid externals loader name, did you mean: ${loaderName} ?`);\n }\n\n if (typeof externals === 'object') {\n if (externals.generator === loaderName) {\n return loadNodeModules(externals.additional);\n }\n\n return externals;\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/externals/index.js\n **/","import fs from 'fs';\n\nconst prependCommonjs = (modules, name) => {\n modules[name] = `commonjs ${name}`;\n return modules;\n};\n\nconst lodashSubmodules = [\n 'array', 'collection', 'date', 'function', 'lang', 'math',\n 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods',\n].map(name => `lodash/${name}`);\n\nexport const loadNodeModules = additional => {\n const nodeModules = {};\n\n fs.readdirSync('node_modules')\n .filter(function(x) { return ['.bin'].indexOf(x) === -1; })\n .reduce(prependCommonjs, nodeModules);\n\n if (additional) {\n additional.reduce(prependCommonjs, nodeModules);\n }\n\n if (nodeModules.lodash) {\n lodashSubmodules.reduce(prependCommonjs, nodeModules);\n }\n\n return nodeModules;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/externals/loadNodeModules.js\n **/","var getLoader = require('./loaders').getLoader;\nvar getPlugin = require('./plugins').getPlugin;\nvar getOutput = require('./output').getOutput;\nvar getResolver = require('./resolver').getResolver;\nvar getEntry = require('./entry').getEntry;\nvar getPostCSS = require('./postcss').getPostCSS;\n\nmodule.exports = {\n getLoader,\n getPlugin,\n getOutput,\n getResolver,\n getEntry,\n getPostCSS,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/index.js\n **/","import ExtractTextPlugin from 'extract-text-webpack-plugin';\n\nimport { Generator } from 'lib/generators/Generator';\n\nexport default Generator('css', {\n test: /\\.css$/,\n loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader'),\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/CSS.js\n **/","import { Generator } from 'lib/generators/Generator';\n\nexport default Generator(['esnextreact', 'ESNextReact'], {\n test: /\\.es6\\.js$|\\.js$|\\.jsx$/,\n exclude: /node_modules/,\n loader: 'babel',\n query: {\n presets: [\n 'es2015-native-modules',\n 'stage-2',\n 'react',\n ],\n plugins: [\n 'transform-class-properties',\n 'transform-react-constant-elements',\n 'transform-react-inline-elements',\n 'lodash', // fixes the babel budnling issue\n ],\n },\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/ESNextReact.js\n **/","import { Generator } from 'lib/generators/Generator';\n\nexport default Generator('ignore-styles', {\n test: /\\.css$|\\.less$/,\n loader: 'ignore-loader',\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/IgnoreStyles.js\n **/","import { Generator } from 'lib/generators/Generator';\n\nexport default Generator('json', {\n test: /\\.json$/,\n loader: 'json-loader',\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/JSON.js\n **/","import ExtractTextPlugin from 'extract-text-webpack-plugin';\n\nimport { Generator } from 'lib/generators/Generator';\n\nexport default Generator('less', {\n test: /\\.less$/,\n loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader'),\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/Less.js\n **/","import { generatorLoader } from 'lib/generators/tryToLoad';\n\nimport CSSLoader from './CSS';\nimport ESNextReactLoader from './ESNextReact';\nimport IgnoreStylesLoader from './IgnoreStyles';\nimport JSONLoader from './JSON';\nimport LessLoader from './Less';\n\nexport const getLoader = generatorLoader('loader', [\n CSSLoader,\n ESNextReactLoader,\n IgnoreStylesLoader,\n JSONLoader,\n LessLoader,\n]);\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/loaders/index.js\n **/","var _ = require('lodash');\nvar SimpleOutput = require('./SimpleOutput');\n\nmodule.exports = function(options) {\n return _.extend(SimpleOutput(options), {\n library: options.libraryName || '[name].js',\n libraryTarget: options.target || 'var',\n });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/output/LibraryOutput.js\n **/","var _ = require('lodash');\nimport { tryToLoadGenerator } from 'lib/generators/tryToLoad'\n\nvar SimpleOutput = require('./SimpleOutput');\nvar LibraryOutput = require('./LibraryOutput');\n\nfunction libraryOfTarget(target) {\n return function(options) {\n return LibraryOutput(_.extend(options, {\n target: target,\n }));\n }\n}\n\nvar outputs = {\n simple: SimpleOutput,\n library: LibraryOutput,\n this: libraryOfTarget('this'),\n commonjs: libraryOfTarget('commonjs'),\n commonjs2: libraryOfTarget('commonjs2'),\n amd: libraryOfTarget('amd'),\n umd: libraryOfTarget('umd'),\n};\n\nvar getOutput = function(outputName) {\n return tryToLoadGenerator(outputName, outputs, 'output');\n}\n\nmodule.exports = {\n outputs,\n getOutput,\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/output/index.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.NoErrorsPlugin();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/AbortIfErrorsPlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.optimize.CommonsChunkPlugin({\n name: 'vendor',\n minChunks: Infinity,\n filename: 'vendor.bundle.js'\n });\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/BundleCommonChunksPlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.LoaderOptionsPlugin({\n minimize: true,\n debug: false\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/EnableProductionLoadersPlugin.js\n **/","var ExtractTextPlugin = require('extract-text-webpack-plugin');\n\nmodule.exports = new ExtractTextPlugin('[name].css');\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/ExtractCSSPlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.optimize.UglifyJsPlugin({\n compress: {\n warnings: false\n },\n output: {\n comments: false\n },\n sourceMap: true,\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/MinifyAndTreeShakePlugin.js\n **/","var webpack = require('webpack');\n\nmodule.exports = new webpack.BannerPlugin({\n banner: 'require(\"source-map-support\").install();',\n raw: true,\n entryOnly: false,\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/NodeLoadSourceMapsPlugin.js\n **/","var webpack = require('webpack');\n\nvar nodeEnv = process.env.NODE_ENV || 'production';\nvar env = process.env.ENV || 'server';\n\nmodule.exports = function(options) {\n return new webpack.DefinePlugin({\n 'process.env': {\n NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv),\n ENV: JSON.stringify(options.env || env),\n },\n });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/SetNodeEnvironmentPlugin.js\n **/","import { tryToLoadGenerator } from 'lib/generators/tryToLoad';\nvar AbortIfErrorsPlugin = require('./AbortIfErrorsPlugin');\nvar BundleCommonChunksPlugin = require('./BundleCommonChunksPlugin');\nvar EnableProductionLoadersPlugin = require('./EnableProductionLoadersPlugin');\nvar ExtractCSSPlugin = require('./ExtractCSSPlugin');\nvar MinifyAndTreeShakePlugin = require('./MinifyAndTreeShakePlugin');\nvar NodeLoadSourceMapsPlugin = require('./NodeLoadSourceMapsPlugin');\nvar SetNodeEnvironmentPlugin = require('./SetNodeEnvironmentPlugin');\n\nvar plugins = {\n 'abort-if-errors': AbortIfErrorsPlugin,\n 'bundle-common': BundleCommonChunksPlugin,\n 'extract-css': ExtractCSSPlugin,\n 'production-loaders': EnableProductionLoadersPlugin,\n 'minify-and-treeshake': MinifyAndTreeShakePlugin,\n 'node-load-sourcemaps': NodeLoadSourceMapsPlugin,\n 'set-node-env': SetNodeEnvironmentPlugin,\n};\n\nfunction getPlugin(pluginName) {\n return tryToLoadGenerator(pluginName, plugins, 'plugin');\n}\n\nmodule.exports = {\n plugins,\n getPlugin,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/plugins/index.js\n **/","var autoprefixer = require('autoprefixer');\n\nmodule.exports = function(options) {\n return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions']});\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/postcss/AutoprexiferPostCSS.js\n **/","import { tryToLoadGenerator } from 'lib/generators/tryToLoad';\nvar AutoprefixerPostCSS = require('./AutoprexiferPostCSS');\n\nvar postCSSHooks = {\n 'autoprefixer-custom': AutoprefixerPostCSS,\n 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }),\n};\n\nvar getPostCSS = function(postCSSHookName) {\n return tryToLoadGenerator(postCSSHookName, postCSSHooks, 'postcsshooks');\n}\n\nmodule.exports = {\n postCSSHooks,\n getPostCSS,\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/postcss/index.js\n **/","var _ = require('lodash');\nvar ModulesResolver = require('./ModulesResolver');\n\nmodule.exports = function(options){\n var result = ModulesResolver(options);\n result.modules = result.modules.concat('node_modules');\n return result;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/NPMAndModulesResolver.js\n **/","import { tryToLoadGenerator } from 'lib/generators/tryToLoad';\n\nvar SimpleResolver = require('./SimpleResolver');\nvar ModulesResolver = require('./ModulesResolver');\nvar NPMAndModulesResolver = require('./NPMAndModulesResolver');\n\nvar resolvers = {\n 'simple': SimpleResolver,\n 'modules': ModulesResolver,\n 'npm-and-modules': NPMAndModulesResolver,\n};\n\nfunction getResolver(resolverName) {\n return tryToLoadGenerator(resolverName, resolvers, 'resolver');\n}\n\nmodule.exports = {\n resolvers,\n getResolver,\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/generators/resolver/index.js\n **/","var _ = require('lodash');\nvar fs = require('fs');\n\nmodule.exports = function getTestFiles(dir, ext) {\n if (dir.indexOf('node_modules') > -1) { return; }\n if (dir.indexOf('.git') > -1) { return; }\n\n var files = [];\n try {\n files = fs.readdirSync(dir);\n } catch (e) {\n files = [];\n }\n\n return files\n .map(function(file) {\n var path = dir + file;\n\n try {\n var stats = fs.statSync(path);\n if (stats.isDirectory()) { return getTestFiles(path + '/', ext); }\n if (file.indexOf(ext) > -1) { return { file, path }; }\n return null;\n }\n catch (e) {\n return null;\n }\n })\n .filter(function(x) { return x; })\n .reduce(function(prev, cur) {\n if (_.isArray(cur)) {\n return prev.concat(cur);\n } else {\n return prev.concat([cur]);\n }\n }, []);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/getTestFiles.js\n **/","var _ = require('lodash');\nvar fs = require('fs');\nvar path = require('path');\nvar debug = require('debug')('blueprints');\nvar Mocha = require('mocha');\nvar colors = require('colors');\nvar rimraf = require('rimraf');\n\nvar build = require('../lib/build');\nvar makeBuild = require('../lib/makeBuild').makeBuild;\nvar configs = require('../lib/configs');\nvar getWebpackEntryForTest = require('../lib/getWebpackEntryForTest');\n\nvar yargs = require('yargs');\n\nvar argv = require('yargs')\n .alias('b', 'blueprintsPath')\n .describe('b', 'path to a raw-config via a node file with moduel.exports = config')\n .default('b', './blueprints.config.js')\n .alias('p', 'production')\n .describe('p', 'enable production settings for the default build cofings')\n .default('p', false)\n .alias('c', 'client')\n .describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]')\n .default('c', false)\n .alias('s', 'server')\n .describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]')\n .default('s', false)\n .alias('a', 'clientAndServer')\n .describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.')\n .default('a', true)\n .alias('w', 'watch')\n .describe('w', '[DEFAULT=false] force watching of all builds')\n .default('w', false)\n .alias('i', 'ignoreBlueprints')\n .describe('ignore the blueprints.config.js file in the current directory and use defaults')\n .default('i', false)\n .alias('t', 'runTest')\n .describe('search for test files and run them')\n .default('t', false)\n .argv;\n\nconsole.log('...Reading Blueprints', argv.blueprintsPath);\nconsole.log('...cwd', process.cwd());\n\nfunction loadBuildsFromPath(configPath) {\n try {\n console.log('...loading bluerprints from', configPath)\n var builds = require(path.resolve(configPath));\n console.log('builds?', builds)\n if (!Array.isArray(builds)) {\n if (builds.extensions === true) {\n return { extensions: _.omit(builds, 'extensions') };\n }\n builds = [builds];\n }\n\n return { builds }\n } catch (e) {\n debug(e);\n return {};\n }\n}\n\nfunction applyExtensions(builds, extensions) {\n var ext = extensions || {};\n console.log('...applying extensions', extensions);\n return builds.map(function(build) { return _.merge(build, ext ); });\n}\n\nfunction makeConfig(builds, extensions) {\n return { builds: applyExtensions(builds, extensions).map(makeBuild) };\n}\n\nvar builds = [];\nvar extensions = {};\n\nif (argv.blueprintsPath && !argv.ignoreBlueprints) {\n var blueprints = loadBuildsFromPath(argv.blueprintsPath);\n if (blueprints.extensions) {\n extensions = blueprints.extensions;\n } else if (blueprints.builds && blueprints.builds.length) {\n builds = blueprints.builds;\n }\n}\n\nfunction loadDefaultConfigs() {\n console.log('...using default configs');\n if (argv.runTest) {\n console.log('...Setting up tests:');\n builds = [ configs.DefaultTestingConfig ];\n builds[0].webpack.entry = getWebpackEntryForTest('./');\n } else if (argv.client) {\n console.log('...client');\n builds = [ configs.getClientConfig(argv.production) ];\n } else if (argv.server) {\n console.log('...server');\n builds = [ configs.getServerConfig(argv.production) ];\n } else if (argv.clientAndServer) {\n console.log('...both');\n builds = [\n configs.getClientConfig(argv.production),\n configs.getServerConfig(argv.production),\n ];\n }\n}\n\nif (!builds.length) {\n loadDefaultConfigs();\n}\n\nif (argv.watch) {\n extensions.watch = true;\n}\n\nbuild(makeConfig(builds, extensions), function(stats) {\n if (stats.errors && stats.errors.length > 0 && !argv.watch) {\n console.log(colors.red(\n 'ERROR IN BUILD. Aborting.'\n ));\n\n process.exit(1);\n }\n\n if (argv.runTest) {\n console.log(colors.magenta(\n '\\n ******************************' +\n '\\n * RUNNING TESTS *' +\n '\\n ******************************'\n ));\n\n var m = new Mocha();\n stats.assets.forEach(function(asset) {\n var path = './.test/' + asset.name;\n m.addFile(path);\n });\n m.run()\n .on('end', function() {\n rimraf('./.test/', function() {});\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/blueprints.js\n **/","module.exports = require(\"autoprefixer\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"autoprefixer\"\n ** module id = 51\n ** module chunks = 0\n **/","module.exports = require(\"lodash/object\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"lodash/object\"\n ** module id = 52\n ** module chunks = 0\n **/","module.exports = require(\"node-notifier\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"node-notifier\"\n ** module id = 53\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/bin/webfonts.js b/bin/webfonts.js index 9fdb2f6..642ec57 100755 --- a/bin/webfonts.js +++ b/bin/webfonts.js @@ -2,41 +2,41 @@ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; -/******/ + /******/ // The require function /******/ function __webpack_require__(moduleId) { -/******/ + /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; -/******/ + /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; -/******/ + /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ + /******/ // Flag the module as loaded /******/ module.l = true; -/******/ + /******/ // Return the exports of the module /******/ return module.exports; /******/ } -/******/ -/******/ + + /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; -/******/ + /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; -/******/ + /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; -/******/ + /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 3); /******/ }) @@ -66,12 +66,12 @@ var glob = __webpack_require__(0); var path = __webpack_require__(1); var webfontsGenerator = __webpack_require__(2); - + var SRC = path.resolve('./assets/svg/*.svg'); - + glob(SRC, function (error, files) { console.log('generating font from:\n', files); - + webfontsGenerator({ files: files, dest: path.resolve('./assets/fonts'), @@ -86,5 +86,4 @@ }); /***/ } -/******/ ]); -//# sourceMappingURL=webfonts.js.map \ No newline at end of file +/******/ ]); \ No newline at end of file diff --git a/bin/webfonts.js.map b/bin/webfonts.js.map deleted file mode 100644 index 2d6358b..0000000 --- a/bin/webfonts.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4fd631ef851207fc335","webpack:///external \"glob\"","webpack:///external \"path\"","webpack:///external \"webfonts-generator\"","webpack:///./src/webfonts.js"],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,kC;;;;;;ACAA,kC;;;;;;ACAA,gD;;;;;;ACAA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,OAAO,oBAAQ,CAAR,CAAX;AACA,KAAI,oBAAoB,oBAAQ,CAAR,CAAxB;;AAEA,KAAI,MAAM,KAAK,OAAL,CAAa,oBAAb,CAAV;;AAEA,MAAK,GAAL,EAAU,UAAS,KAAT,EAAgB,KAAhB,EAAuB;AAC/B,WAAQ,GAAR,CAAY,yBAAZ,EAAuC,KAAvC;;AAEA,qBAAkB;AAChB,YAAO,KADS;AAEhB,WAAM,KAAK,OAAL,CAAa,gBAAb,CAFU;AAGhB,eAAU,OAHM;AAIhB,UAAK,IAJW;AAKhB,cAAS,KAAK,OAAL,CAAa,0BAAb,CALO;AAMhB,kBAAa,QANG;AAOhB,WAAM,IAPU;AAQhB,YAAO,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,EAAuB,KAAvB,CARS;AAShB,gBAAW;AATK,IAAlB;AAWD,EAdD,E","file":"webfonts.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b4fd631ef851207fc335\n **/","module.exports = require(\"glob\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"glob\"\n ** module id = 0\n ** module chunks = 0\n **/","module.exports = require(\"path\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"path\"\n ** module id = 1\n ** module chunks = 0\n **/","module.exports = require(\"webfonts-generator\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"webfonts-generator\"\n ** module id = 2\n ** module chunks = 0\n **/","var glob = require('glob');\nvar path = require('path');\nvar webfontsGenerator = require('webfonts-generator');\n\nvar SRC = path.resolve('./assets/svg/*.svg');\n\nglob(SRC, function(error, files) {\n console.log('generating font from:\\n', files);\n\n webfontsGenerator({\n files: files,\n dest: path.resolve('./assets/fonts'),\n fontName: 'rfont',\n css: true,\n cssDest: path.resolve('./assets/fonts/rfont.css'),\n cssFontsUrl: '/fonts',\n html: true,\n types: ['svg', 'ttf', 'woff', 'eot'],\n normalize: true,\n })\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/webfonts.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/blueprints.config.js b/blueprints.config.js index a7faffd..15f8e51 100644 --- a/blueprints.config.js +++ b/blueprints.config.js @@ -5,7 +5,6 @@ function makeConfig(name) { return { name: name, webpack: { - devtool: 'source-map', entry, output: { generator: 'simple', @@ -30,6 +29,16 @@ function makeConfig(name) { ], externals: 'node-modules', target: 'node', + node: { + path: false, + process: false, + __filename: false, + __dirname: false, + os: false, + global: false, + Buffer: false, + require: false, + }, }, }; } diff --git a/lib/generators/Generator.js b/lib/generators/Generator.js index 4cc8991..5c077ce 100644 --- a/lib/generators/Generator.js +++ b/lib/generators/Generator.js @@ -1,5 +1,5 @@ export const Generator = (nameOrNames, objectOrFunction) => { - let names =nameOrNames; + let names = nameOrNames; if (!Array.isArray(names)) { names = [ names ]; } diff --git a/lib/generators/output/Library.js b/lib/generators/output/Library.js new file mode 100644 index 0000000..8d3343d --- /dev/null +++ b/lib/generators/output/Library.js @@ -0,0 +1,10 @@ +import { Generator } from 'lib/generators/Generator'; +import SimpleOutput from './Simple'; +const simple = SimpleOutput.objectOrFunction; // is a function + +export default Generator(['this', 'commonjs', 'commonjs2', 'amd', 'umd'], options => ({ + ...simple(options), + library: options.libraryName || '[name].js', + // use options.generator to know the name we've been passed, which will be one of the above ^ + libraryTarget: options.target || options.generator || 'var', +})); diff --git a/lib/generators/output/LibraryOutput.js b/lib/generators/output/LibraryOutput.js deleted file mode 100644 index 99ec556..0000000 --- a/lib/generators/output/LibraryOutput.js +++ /dev/null @@ -1,9 +0,0 @@ -var _ = require('lodash'); -var SimpleOutput = require('./SimpleOutput'); - -module.exports = function(options) { - return _.extend(SimpleOutput(options), { - library: options.libraryName || '[name].js', - libraryTarget: options.target || 'var', - }); -}; diff --git a/lib/generators/output/Simple.js b/lib/generators/output/Simple.js new file mode 100644 index 0000000..5b34d22 --- /dev/null +++ b/lib/generators/output/Simple.js @@ -0,0 +1,8 @@ +import path from 'path'; + +import { Generator } from 'lib/generators/Generator'; + +export default Generator('simple', options => ({ + path: path.resolve(options.dest), + filename: options.name || '[name].js', +})); diff --git a/lib/generators/output/SimpleOutput.js b/lib/generators/output/SimpleOutput.js deleted file mode 100644 index b891f0f..0000000 --- a/lib/generators/output/SimpleOutput.js +++ /dev/null @@ -1,8 +0,0 @@ -var path = require('path'); - -module.exports = function(options){ - return { - path: path.resolve(options.dest), - filename: options.name || '[name].js', - }; -}; diff --git a/lib/generators/output/index.js b/lib/generators/output/index.js index 0ffae98..74bc538 100644 --- a/lib/generators/output/index.js +++ b/lib/generators/output/index.js @@ -1,32 +1,9 @@ -var _ = require('lodash'); -import { tryToLoadGenerator } from 'lib/generators/tryToLoad' +import { generatorLoader } from 'lib/generators/tryToLoad'; -var SimpleOutput = require('./SimpleOutput'); -var LibraryOutput = require('./LibraryOutput'); +import LibraryOutput from './Library'; +import SimpleOutput from './Simple'; -function libraryOfTarget(target) { - return function(options) { - return LibraryOutput(_.extend(options, { - target: target, - })); - } -} - -var outputs = { - simple: SimpleOutput, - library: LibraryOutput, - this: libraryOfTarget('this'), - commonjs: libraryOfTarget('commonjs'), - commonjs2: libraryOfTarget('commonjs2'), - amd: libraryOfTarget('amd'), - umd: libraryOfTarget('umd'), -}; - -var getOutput = function(outputName) { - return tryToLoadGenerator(outputName, outputs, 'output'); -} - -module.exports = { - outputs, - getOutput, -} +export const getOutput = generatorLoader('output', [ + LibraryOutput, + SimpleOutput, +]); diff --git a/lib/generators/tryToLoad.js b/lib/generators/tryToLoad.js index 409bab0..fbdfe8b 100644 --- a/lib/generators/tryToLoad.js +++ b/lib/generators/tryToLoad.js @@ -1,5 +1,3 @@ -import { omit } from 'lodash/object'; - const applyGenerators = (loaders, generator) => { generator.names.forEach(name => { loaders[name] = generator.objectOrFunction; @@ -25,6 +23,7 @@ export const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => { } if (typeof thing === 'function') { + console.log('parsed', parsed); return thing(parsed.options); } @@ -39,7 +38,7 @@ const parseNameOrObject = (nameOrObject) => { if (typeof nameOrObject === 'object') { const name = nameOrObject.generator; if (typeof name === 'string') { - return { name, options: omit(nameOrObject, 'name') }; + return { name, options: nameOrObject }; } } }; From f02c9c5cdf47c945ce0ae4c76cf8eb9700a6e6d8 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 15:58:59 -0700 Subject: [PATCH 06/14] Convert plugins to esnext --- bin/blueprints.js | 283 +++++++++++------- lib/generators/plugins/AbortIfErrors.js | 4 + lib/generators/plugins/AbortIfErrorsPlugin.js | 3 - lib/generators/plugins/BundleCommonChunks.js | 9 + .../plugins/BundleCommonChunksPlugin.js | 7 - .../plugins/EnableProductionLoaders.js | 7 + .../plugins/EnableProductionLoadersPlugin.js | 6 - lib/generators/plugins/ExtractCSS.js | 4 + lib/generators/plugins/ExtractCSSPlugin.js | 3 - lib/generators/plugins/MinifyAndTreeShake.js | 10 + .../plugins/MinifyAndTreeShakePlugin.js | 11 - lib/generators/plugins/NodeExecutable.js | 8 + .../plugins/NodeExecutablePlugin.js | 7 - lib/generators/plugins/NodeLoadSourceMaps.js | 8 + .../plugins/NodeLoadSourceMapsPlugin.js | 7 - lib/generators/plugins/SetNodeEnvironment.js | 14 + .../plugins/SetNodeEnvironmentPlugin.js | 13 - lib/generators/plugins/index.js | 44 ++- 18 files changed, 262 insertions(+), 186 deletions(-) create mode 100644 lib/generators/plugins/AbortIfErrors.js delete mode 100644 lib/generators/plugins/AbortIfErrorsPlugin.js create mode 100644 lib/generators/plugins/BundleCommonChunks.js delete mode 100644 lib/generators/plugins/BundleCommonChunksPlugin.js create mode 100644 lib/generators/plugins/EnableProductionLoaders.js delete mode 100644 lib/generators/plugins/EnableProductionLoadersPlugin.js create mode 100644 lib/generators/plugins/ExtractCSS.js delete mode 100644 lib/generators/plugins/ExtractCSSPlugin.js create mode 100644 lib/generators/plugins/MinifyAndTreeShake.js delete mode 100644 lib/generators/plugins/MinifyAndTreeShakePlugin.js create mode 100644 lib/generators/plugins/NodeExecutable.js delete mode 100644 lib/generators/plugins/NodeExecutablePlugin.js create mode 100644 lib/generators/plugins/NodeLoadSourceMaps.js delete mode 100644 lib/generators/plugins/NodeLoadSourceMapsPlugin.js create mode 100644 lib/generators/plugins/SetNodeEnvironment.js delete mode 100644 lib/generators/plugins/SetNodeEnvironmentPlugin.js diff --git a/bin/blueprints.js b/bin/blueprints.js index 9ad20cb..e920f2b 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -872,123 +872,39 @@ /* harmony export */ Object.defineProperty(exports, "getOutput", {configurable: false, enumerable: true, get: function() { return getOutput; }}); /***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var webpack = __webpack_require__(2); - - module.exports = new webpack.NoErrorsPlugin(); - -/***/ }, -/* 38 */ +/* 37 */, +/* 38 */, +/* 39 */, +/* 40 */, +/* 41 */, +/* 42 */, +/* 43 */, +/* 44 */ /***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(2); - - module.exports = new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: Infinity, - filename: 'vendor.bundle.js' - }); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__ = __webpack_require__(53); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__ = __webpack_require__(54); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__ = __webpack_require__(55); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ExtractCSS__ = __webpack_require__(56); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__ = __webpack_require__(57); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NodeExecutable__ = __webpack_require__(58); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__ = __webpack_require__(59); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__ = __webpack_require__(60); -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(2); - module.exports = new webpack.LoaderOptionsPlugin({ - minimize: true, - debug: false - }); - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - var ExtractTextPlugin = __webpack_require__(7); - module.exports = new ExtractTextPlugin('[name].css'); -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(2); - module.exports = new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - output: { - comments: false - }, - sourceMap: true - }); -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - var webpack = __webpack_require__(2); - module.exports = new webpack.BannerPlugin({ - banner: 'require("source-map-support").install();', - raw: true, - entryOnly: false - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - - var webpack = __webpack_require__(2); - - var nodeEnv = "production" || 'production'; - var env = "server" || 'server'; - - module.exports = function (options) { - return new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), - ENV: JSON.stringify(options.env || env) - } - }); - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - - var AbortIfErrorsPlugin = __webpack_require__(37); - var BundleCommonChunksPlugin = __webpack_require__(38); - var EnableProductionLoadersPlugin = __webpack_require__(39); - var ExtractCSSPlugin = __webpack_require__(40); - var MinifyAndTreeShakePlugin = __webpack_require__(41); - var NodeLoadSourceMapsPlugin = __webpack_require__(42); - var SetNodeEnvironmentPlugin = __webpack_require__(43); - - var plugins = { - 'abort-if-errors': AbortIfErrorsPlugin, - 'bundle-common': BundleCommonChunksPlugin, - 'extract-css': ExtractCSSPlugin, - 'production-loaders': EnableProductionLoadersPlugin, - 'minify-and-treeshake': MinifyAndTreeShakePlugin, - 'node-load-sourcemaps': NodeLoadSourceMapsPlugin, - 'set-node-env': SetNodeEnvironmentPlugin - }; - - function getPlugin(pluginName) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(pluginName, plugins, 'plugin'); - } - - module.exports = { - plugins: plugins, - getPlugin: getPlugin - }; + var getPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('plugin', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__ExtractCSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_6__NodeExecutable__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__["a"]]); + /* harmony export */ Object.defineProperty(exports, "getPlugin", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); /***/ }, /* 45 */ @@ -1237,5 +1153,164 @@ module.exports = require("node-notifier"); +/***/ }, +/* 53 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('abort-if-errors', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["NoErrorsPlugin"](); + }); + +/***/ }, +/* 54 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + var CommonsChunkPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["optimize"].CommonsChunkPlugin; + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('bundle-common', function () { + return new CommonsChunkPlugin({ + name: 'vendor', + minChunks: Infinity, + filename: 'vendor.bundle.js' + }); + }); + +/***/ }, +/* 55 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('production-loaders', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["LoaderOptionsPlugin"]({ + minimize: true, + debug: false + }); + }); + +/***/ }, +/* 56 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = new /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"]('extract-css', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a('[name].css'); + }); + +/***/ }, +/* 57 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + var UglifyJsPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["optimize"].UglifyJsPlugin; + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('minify-and-treeshake', function () { + return new UglifyJsPlugin({ + compress: { warnings: false }, + output: { comments: false }, + sourceMap: true + }); + }); + +/***/ }, +/* 58 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('node-executable', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["BannerPlugin"]({ + banner: '#!/usr/bin/env node', + raw: true, + entryOnly: true + }); + }); + +/***/ }, +/* 59 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('node-load-sourcemaps', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["BannerPlugin"]({ + banner: 'require("source-map-support").install();', + raw: true, + entryOnly: false + }); + }); + +/***/ }, +/* 60 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('set-node-env', function (options) { + var nodeEnv = "production" || 'production'; + var env = "server" || 'server'; + + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["DefinePlugin"]({ + 'process.env': { + NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), + ENV: JSON.stringify(options.env || env) + } + }); + }); + /***/ } /******/ ]); \ No newline at end of file diff --git a/lib/generators/plugins/AbortIfErrors.js b/lib/generators/plugins/AbortIfErrors.js new file mode 100644 index 0000000..5a4fb01 --- /dev/null +++ b/lib/generators/plugins/AbortIfErrors.js @@ -0,0 +1,4 @@ +import { NoErrorsPlugin } from 'webpack'; +import { Generator } from 'lib/generators/Generator'; + +export default Generator('abort-if-errors', () => new NoErrorsPlugin()); diff --git a/lib/generators/plugins/AbortIfErrorsPlugin.js b/lib/generators/plugins/AbortIfErrorsPlugin.js deleted file mode 100644 index 4901468..0000000 --- a/lib/generators/plugins/AbortIfErrorsPlugin.js +++ /dev/null @@ -1,3 +0,0 @@ -var webpack = require('webpack'); - -module.exports = new webpack.NoErrorsPlugin(); diff --git a/lib/generators/plugins/BundleCommonChunks.js b/lib/generators/plugins/BundleCommonChunks.js new file mode 100644 index 0000000..8b333f9 --- /dev/null +++ b/lib/generators/plugins/BundleCommonChunks.js @@ -0,0 +1,9 @@ +import { optimize } from 'webpack'; +const { CommonsChunkPlugin } = optimize; +import { Generator } from 'lib/generators/Generator'; + +export default Generator('bundle-common', () => (new CommonsChunkPlugin({ + name: 'vendor', + minChunks: Infinity, + filename: 'vendor.bundle.js' + }))); diff --git a/lib/generators/plugins/BundleCommonChunksPlugin.js b/lib/generators/plugins/BundleCommonChunksPlugin.js deleted file mode 100644 index f01c656..0000000 --- a/lib/generators/plugins/BundleCommonChunksPlugin.js +++ /dev/null @@ -1,7 +0,0 @@ -var webpack = require('webpack'); - -module.exports = new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: Infinity, - filename: 'vendor.bundle.js' - }); diff --git a/lib/generators/plugins/EnableProductionLoaders.js b/lib/generators/plugins/EnableProductionLoaders.js new file mode 100644 index 0000000..0d90d7a --- /dev/null +++ b/lib/generators/plugins/EnableProductionLoaders.js @@ -0,0 +1,7 @@ +import { LoaderOptionsPlugin } from 'webpack'; +import { Generator } from 'lib/generators/Generator'; + +export default Generator('production-loaders', () => (new LoaderOptionsPlugin({ + minimize: true, + debug: false +}))); diff --git a/lib/generators/plugins/EnableProductionLoadersPlugin.js b/lib/generators/plugins/EnableProductionLoadersPlugin.js deleted file mode 100644 index 88519e5..0000000 --- a/lib/generators/plugins/EnableProductionLoadersPlugin.js +++ /dev/null @@ -1,6 +0,0 @@ -var webpack = require('webpack'); - -module.exports = new webpack.LoaderOptionsPlugin({ - minimize: true, - debug: false -}); diff --git a/lib/generators/plugins/ExtractCSS.js b/lib/generators/plugins/ExtractCSS.js new file mode 100644 index 0000000..ee36385 --- /dev/null +++ b/lib/generators/plugins/ExtractCSS.js @@ -0,0 +1,4 @@ +import ExtractTextPlugin from 'extract-text-webpack-plugin'; +import { Generator } from 'lib/generators/Generator'; + +export default new Generator('extract-css', () => (new ExtractTextPlugin('[name].css'))); diff --git a/lib/generators/plugins/ExtractCSSPlugin.js b/lib/generators/plugins/ExtractCSSPlugin.js deleted file mode 100644 index 6cd0087..0000000 --- a/lib/generators/plugins/ExtractCSSPlugin.js +++ /dev/null @@ -1,3 +0,0 @@ -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -module.exports = new ExtractTextPlugin('[name].css'); diff --git a/lib/generators/plugins/MinifyAndTreeShake.js b/lib/generators/plugins/MinifyAndTreeShake.js new file mode 100644 index 0000000..b54523f --- /dev/null +++ b/lib/generators/plugins/MinifyAndTreeShake.js @@ -0,0 +1,10 @@ +import { optimize } from 'webpack'; +const { UglifyJsPlugin } = optimize; +import { Generator } from 'lib/generators/Generator'; + +export default Generator('minify-and-treeshake', () => { + return new UglifyJsPlugin({ + compress: { warnings: false }, + output: { comments: false }, + sourceMap: true, +});}); diff --git a/lib/generators/plugins/MinifyAndTreeShakePlugin.js b/lib/generators/plugins/MinifyAndTreeShakePlugin.js deleted file mode 100644 index 19467b9..0000000 --- a/lib/generators/plugins/MinifyAndTreeShakePlugin.js +++ /dev/null @@ -1,11 +0,0 @@ -var webpack = require('webpack'); - -module.exports = new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - output: { - comments: false - }, - sourceMap: true, -}); diff --git a/lib/generators/plugins/NodeExecutable.js b/lib/generators/plugins/NodeExecutable.js new file mode 100644 index 0000000..a3c1c90 --- /dev/null +++ b/lib/generators/plugins/NodeExecutable.js @@ -0,0 +1,8 @@ +import { BannerPlugin } from 'webpack'; +import { Generator } from 'lib/generators/Generator'; + +export default Generator('node-executable', () => (new BannerPlugin({ + banner: '#!/usr/bin/env node', + raw: true, + entryOnly: true, +}))); diff --git a/lib/generators/plugins/NodeExecutablePlugin.js b/lib/generators/plugins/NodeExecutablePlugin.js deleted file mode 100644 index 6966fca..0000000 --- a/lib/generators/plugins/NodeExecutablePlugin.js +++ /dev/null @@ -1,7 +0,0 @@ -var webpack = require('webpack'); - -module.exports = new webpack.BannerPlugin({ - banner: '#!/usr/bin/env node', - raw: true, - entryOnly: true, -}); diff --git a/lib/generators/plugins/NodeLoadSourceMaps.js b/lib/generators/plugins/NodeLoadSourceMaps.js new file mode 100644 index 0000000..7040843 --- /dev/null +++ b/lib/generators/plugins/NodeLoadSourceMaps.js @@ -0,0 +1,8 @@ +import { BannerPlugin } from 'webpack'; +import { Generator }from 'lib/generators/Generator'; + +export default Generator('node-load-sourcemaps', () => (new BannerPlugin({ + banner: 'require("source-map-support").install();', + raw: true, + entryOnly: false, +}))); diff --git a/lib/generators/plugins/NodeLoadSourceMapsPlugin.js b/lib/generators/plugins/NodeLoadSourceMapsPlugin.js deleted file mode 100644 index 9563328..0000000 --- a/lib/generators/plugins/NodeLoadSourceMapsPlugin.js +++ /dev/null @@ -1,7 +0,0 @@ -var webpack = require('webpack'); - -module.exports = new webpack.BannerPlugin({ - banner: 'require("source-map-support").install();', - raw: true, - entryOnly: false, -}); diff --git a/lib/generators/plugins/SetNodeEnvironment.js b/lib/generators/plugins/SetNodeEnvironment.js new file mode 100644 index 0000000..6869e1e --- /dev/null +++ b/lib/generators/plugins/SetNodeEnvironment.js @@ -0,0 +1,14 @@ +import { DefinePlugin } from 'webpack'; +import { Generator } from 'lib/generators/Generator'; + +export default Generator('set-node-env', options => { + const nodeEnv = process.env.NODE_ENV || 'production'; + const env = process.env.ENV || 'server'; + + return new DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), + ENV: JSON.stringify(options.env || env), + }, + }); +}); diff --git a/lib/generators/plugins/SetNodeEnvironmentPlugin.js b/lib/generators/plugins/SetNodeEnvironmentPlugin.js deleted file mode 100644 index 1814e1f..0000000 --- a/lib/generators/plugins/SetNodeEnvironmentPlugin.js +++ /dev/null @@ -1,13 +0,0 @@ -var webpack = require('webpack'); - -var nodeEnv = process.env.NODE_ENV || 'production'; -var env = process.env.ENV || 'server'; - -module.exports = function(options) { - return new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), - ENV: JSON.stringify(options.env || env), - }, - }); -}; diff --git a/lib/generators/plugins/index.js b/lib/generators/plugins/index.js index eb884c9..8cce27d 100644 --- a/lib/generators/plugins/index.js +++ b/lib/generators/plugins/index.js @@ -1,27 +1,21 @@ -import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; -var AbortIfErrorsPlugin = require('./AbortIfErrorsPlugin'); -var BundleCommonChunksPlugin = require('./BundleCommonChunksPlugin'); -var EnableProductionLoadersPlugin = require('./EnableProductionLoadersPlugin'); -var ExtractCSSPlugin = require('./ExtractCSSPlugin'); -var MinifyAndTreeShakePlugin = require('./MinifyAndTreeShakePlugin'); -var NodeLoadSourceMapsPlugin = require('./NodeLoadSourceMapsPlugin'); -var SetNodeEnvironmentPlugin = require('./SetNodeEnvironmentPlugin'); +import { generatorLoader } from 'lib/generators/tryToLoad'; -var plugins = { - 'abort-if-errors': AbortIfErrorsPlugin, - 'bundle-common': BundleCommonChunksPlugin, - 'extract-css': ExtractCSSPlugin, - 'production-loaders': EnableProductionLoadersPlugin, - 'minify-and-treeshake': MinifyAndTreeShakePlugin, - 'node-load-sourcemaps': NodeLoadSourceMapsPlugin, - 'set-node-env': SetNodeEnvironmentPlugin, -}; +import AbortIfErrorsPlugin from './AbortIfErrors'; +import BundleCommonChunksPlugin from './BundleCommonChunks'; +import EnableProductionLoadersPlugin from './EnableProductionLoaders'; +import ExtractCSSPlugin from './ExtractCSS'; +import MinifyAndTreeShakePlugin from './MinifyAndTreeShake'; +import NodeExecutablePlugin from './NodeExecutable'; +import NodeLoadSourceMapsPlugin from './NodeLoadSourceMaps'; +import SetNodeEnvironmentPlugin from './SetNodeEnvironment'; -function getPlugin(pluginName) { - return tryToLoadGenerator(pluginName, plugins, 'plugin'); -} - -module.exports = { - plugins, - getPlugin, -}; +export const getPlugin = generatorLoader('plugin', [ + AbortIfErrorsPlugin, + BundleCommonChunksPlugin, + EnableProductionLoadersPlugin, + ExtractCSSPlugin, + MinifyAndTreeShakePlugin, + NodeExecutablePlugin, + NodeLoadSourceMapsPlugin, + SetNodeEnvironmentPlugin, +]); From 14d8a5252cef5e8b49537d5421a930f649900be9 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 16:02:59 -0700 Subject: [PATCH 07/14] Convert postcss hoooks --- bin/blueprints.js | 452 ++++++++++-------- lib/generators/postcss/Autoprefixer.js | 6 + lib/generators/postcss/AutoprexiferPostCSS.js | 5 - lib/generators/postcss/index.js | 20 +- 4 files changed, 260 insertions(+), 223 deletions(-) create mode 100644 lib/generators/postcss/Autoprefixer.js delete mode 100644 lib/generators/postcss/AutoprexiferPostCSS.js diff --git a/bin/blueprints.js b/bin/blueprints.js index e920f2b..972a8bc 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -41,14 +41,16 @@ /******/ return __webpack_require__(__webpack_require__.s = 50); /******/ }) /************************************************************************/ -/******/ ([ -/* 0 */ +/******/ ({ + +/***/ 0: /***/ function(module, exports) { module.exports = require("lodash"); /***/ }, -/* 1 */ + +/***/ 1: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -66,135 +68,8 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return Generator; }}); /***/ }, -/* 2 */ -/***/ function(module, exports) { - - module.exports = require("webpack"); - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - var applyGenerators = function applyGenerators(loaders, generator) { - generator.names.forEach(function (name) { - loaders[name] = generator.objectOrFunction; - }); - - return loaders; - }; - - var generatorLoader = function generatorLoader(thingKind, generators) { - var loaders = generators.reduce(function (prev, generator) { - return applyGenerators(_extends({}, prev), generator); - }, {}); - return function (loaderName) { - return tryToLoadGenerator(loaderName, loaders, thingKind); - }; - }; - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return generatorLoader; }}); - - var tryToLoadGenerator = function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { - var parsed = parseNameOrObject(nameOrObject); - if (!parsed) { - return nameOrObject; - } - - var thing = lookupTable[parsed.name]; - if (!thing) { - throw new Error('Failed to resolve ' + nameOrObject + ' - ' + thingKind); - } - - if (typeof thing === 'function') { - console.log('parsed', parsed); - return thing(parsed.options); - } - - return thing; - }; - /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return tryToLoadGenerator; }}); - - var parseNameOrObject = function parseNameOrObject(nameOrObject) { - if (typeof nameOrObject === 'string') { - return { name: nameOrObject, options: {} }; - } - - if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { - var name = nameOrObject.generator; - if (typeof name === 'string') { - return { name: name, options: nameOrObject }; - } - } - }; - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - module.exports = require("fs"); - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - module.exports = require("path"); - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = require("yargs"); - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = require("extract-text-webpack-plugin"); - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(5); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('simple', function (options) { - return { - path: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(options.dest), - filename: options.name || '[name].js' - }; - }); - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var _ = __webpack_require__(0); - var path = __webpack_require__(5); - var SimpleResolver = __webpack_require__(10); - - function resolvePath(strPath) { - return path.resolve(strPath); // path.resolve seems to have a binding issue; - } - module.exports = function (options) { - return _.extend(SimpleResolver(options), { - modules: (options.paths || []).map(resolvePath) - }); - }; - -/***/ }, -/* 10 */ +/***/ 10: /***/ function(module, exports) { module.exports = function (options) { @@ -204,7 +79,8 @@ }; /***/ }, -/* 11 */ + +/***/ 11: /***/ function(module, exports, __webpack_require__) { /* eslint-disable */ @@ -282,7 +158,8 @@ } /***/ }, -/* 12 */ + +/***/ 12: /***/ function(module, exports, __webpack_require__) { var DefaultClientConfig = __webpack_require__(20); @@ -314,7 +191,8 @@ }; /***/ }, -/* 13 */ + +/***/ 13: /***/ function(module, exports, __webpack_require__) { var getTestFiles = __webpack_require__(49); @@ -332,7 +210,8 @@ }; /***/ }, -/* 14 */ + +/***/ 14: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -424,7 +303,8 @@ }; /***/ }, -/* 15 */ + +/***/ 15: /***/ function(module, exports) { function webpackEmptyContext(req) { @@ -437,31 +317,43 @@ /***/ }, -/* 16 */ + +/***/ 16: /***/ function(module, exports) { module.exports = require("colors"); /***/ }, -/* 17 */ + +/***/ 17: /***/ function(module, exports) { module.exports = require("debug"); /***/ }, -/* 18 */ + +/***/ 18: /***/ function(module, exports) { module.exports = require("mocha"); /***/ }, -/* 19 */ + +/***/ 19: /***/ function(module, exports) { module.exports = require("rimraf"); /***/ }, -/* 20 */ + +/***/ 2: +/***/ function(module, exports) { + + module.exports = require("webpack"); + +/***/ }, + +/***/ 20: /***/ function(module, exports) { module.exports = { @@ -487,7 +379,8 @@ }; /***/ }, -/* 21 */ + +/***/ 21: /***/ function(module, exports) { module.exports = { @@ -513,7 +406,8 @@ }; /***/ }, -/* 22 */ + +/***/ 22: /***/ function(module, exports) { module.exports = { @@ -547,7 +441,8 @@ }; /***/ }, -/* 23 */ + +/***/ 23: /***/ function(module, exports) { module.exports = { @@ -582,7 +477,8 @@ }; /***/ }, -/* 24 */ + +/***/ 24: /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); @@ -610,7 +506,8 @@ }; /***/ }, -/* 25 */ + +/***/ 25: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -644,7 +541,8 @@ }; /***/ }, -/* 26 */ + +/***/ 26: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -675,7 +573,8 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getExternals; }}); /***/ }, -/* 27 */ + +/***/ 27: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -713,7 +612,27 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return loadNodeModules; }}); /***/ }, -/* 28 */ + +/***/ 272: +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ = __webpack_require__(51); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default = __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ && __WEBPACK_IMPORTED_MODULE_1_autoprefixer__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default }); + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('autoprefixer', function (options) { + return /* harmony import */__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default.a.bind()({ + browsers: ['last ' + (options.numVersions || 2) + ' versions'] + }); + }); + +/***/ }, + +/***/ 28: /***/ function(module, exports, __webpack_require__) { var getLoader = __webpack_require__(34).getLoader; @@ -733,7 +652,8 @@ }; /***/ }, -/* 29 */ + +/***/ 29: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -751,7 +671,69 @@ }); /***/ }, -/* 30 */ + +/***/ 3: +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var applyGenerators = function applyGenerators(loaders, generator) { + generator.names.forEach(function (name) { + loaders[name] = generator.objectOrFunction; + }); + + return loaders; + }; + + var generatorLoader = function generatorLoader(thingKind, generators) { + var loaders = generators.reduce(function (prev, generator) { + return applyGenerators(_extends({}, prev), generator); + }, {}); + return function (loaderName) { + return tryToLoadGenerator(loaderName, loaders, thingKind); + }; + }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return generatorLoader; }}); + + var tryToLoadGenerator = function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { + var parsed = parseNameOrObject(nameOrObject); + if (!parsed) { + return nameOrObject; + } + + var thing = lookupTable[parsed.name]; + if (!thing) { + throw new Error('Failed to resolve ' + nameOrObject + ' - ' + thingKind); + } + + if (typeof thing === 'function') { + console.log('parsed', parsed); + return thing(parsed.options); + } + + return thing; + }; + /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return tryToLoadGenerator; }}); + + var parseNameOrObject = function parseNameOrObject(nameOrObject) { + if (typeof nameOrObject === 'string') { + return { name: nameOrObject, options: {} }; + } + + if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { + var name = nameOrObject.generator; + if (typeof name === 'string') { + return { name: name, options: nameOrObject }; + } + } + }; + +/***/ }, + +/***/ 30: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -769,7 +751,8 @@ }); /***/ }, -/* 31 */ + +/***/ 31: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -782,7 +765,8 @@ }); /***/ }, -/* 32 */ + +/***/ 32: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -795,7 +779,8 @@ }); /***/ }, -/* 33 */ + +/***/ 33: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -813,7 +798,8 @@ }); /***/ }, -/* 34 */ + +/***/ 34: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -835,7 +821,8 @@ /* harmony export */ Object.defineProperty(exports, "getLoader", {configurable: false, enumerable: true, get: function() { return getLoader; }}); /***/ }, -/* 35 */ + +/***/ 35: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -856,7 +843,8 @@ }); /***/ }, -/* 36 */ + +/***/ 36: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -872,14 +860,15 @@ /* harmony export */ Object.defineProperty(exports, "getOutput", {configurable: false, enumerable: true, get: function() { return getOutput; }}); /***/ }, -/* 37 */, -/* 38 */, -/* 39 */, -/* 40 */, -/* 41 */, -/* 42 */, -/* 43 */, -/* 44 */ + +/***/ 4: +/***/ function(module, exports) { + + module.exports = require("fs"); + +/***/ }, + +/***/ 44: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -907,40 +896,22 @@ /* harmony export */ Object.defineProperty(exports, "getPlugin", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); /***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - var autoprefixer = __webpack_require__(51); - - module.exports = function (options) { - return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions'] }); - }; -/***/ }, -/* 46 */ +/***/ 46: /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Autoprefixer__ = __webpack_require__(272); - var AutoprefixerPostCSS = __webpack_require__(45); - var postCSSHooks = { - 'autoprefixer-custom': AutoprefixerPostCSS, - 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }) - }; - var getPostCSS = function getPostCSS(postCSSHookName) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(postCSSHookName, postCSSHooks, 'postcsshooks'); - }; - - module.exports = { - postCSSHooks: postCSSHooks, - getPostCSS: getPostCSS - }; + var getPostCSS = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('postcsshooks', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Autoprefixer__["a"]]); + /* harmony export */ Object.defineProperty(exports, "getPostCSS", {configurable: false, enumerable: true, get: function() { return getPostCSS; }}); /***/ }, -/* 47 */ + +/***/ 47: /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); @@ -953,7 +924,8 @@ }; /***/ }, -/* 48 */ + +/***/ 48: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -980,7 +952,8 @@ }; /***/ }, -/* 49 */ + +/***/ 49: /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); @@ -1028,7 +1001,15 @@ }; /***/ }, -/* 50 */ + +/***/ 5: +/***/ function(module, exports) { + + module.exports = require("path"); + +/***/ }, + +/***/ 50: /***/ function(module, exports, __webpack_require__) { var _ = __webpack_require__(0); @@ -1142,19 +1123,22 @@ }); /***/ }, -/* 51 */ + +/***/ 51: /***/ function(module, exports) { module.exports = require("autoprefixer"); /***/ }, -/* 52 */ + +/***/ 52: /***/ function(module, exports) { module.exports = require("node-notifier"); /***/ }, -/* 53 */ + +/***/ 53: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1170,7 +1154,8 @@ }); /***/ }, -/* 54 */ + +/***/ 54: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1192,7 +1177,8 @@ }); /***/ }, -/* 55 */ + +/***/ 55: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1211,7 +1197,8 @@ }); /***/ }, -/* 56 */ + +/***/ 56: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1227,7 +1214,8 @@ }); /***/ }, -/* 57 */ + +/***/ 57: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1249,7 +1237,8 @@ }); /***/ }, -/* 58 */ + +/***/ 58: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1269,7 +1258,8 @@ }); /***/ }, -/* 59 */ + +/***/ 59: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1289,7 +1279,15 @@ }); /***/ }, -/* 60 */ + +/***/ 6: +/***/ function(module, exports) { + + module.exports = require("yargs"); + +/***/ }, + +/***/ 60: /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1312,5 +1310,53 @@ }); }); +/***/ }, + +/***/ 7: +/***/ function(module, exports) { + + module.exports = require("extract-text-webpack-plugin"); + +/***/ }, + +/***/ 8: +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(5); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('simple', function (options) { + return { + path: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(options.dest), + filename: options.name || '[name].js' + }; + }); + +/***/ }, + +/***/ 9: +/***/ function(module, exports, __webpack_require__) { + + var _ = __webpack_require__(0); + var path = __webpack_require__(5); + var SimpleResolver = __webpack_require__(10); + + function resolvePath(strPath) { + return path.resolve(strPath); // path.resolve seems to have a binding issue; + } + + module.exports = function (options) { + return _.extend(SimpleResolver(options), { + modules: (options.paths || []).map(resolvePath) + }); + }; + /***/ } -/******/ ]); \ No newline at end of file + +/******/ }); \ No newline at end of file diff --git a/lib/generators/postcss/Autoprefixer.js b/lib/generators/postcss/Autoprefixer.js new file mode 100644 index 0000000..1fca6c4 --- /dev/null +++ b/lib/generators/postcss/Autoprefixer.js @@ -0,0 +1,6 @@ +import { Generator } from 'lib/generators/Generator'; +import autoprefixer from 'autoprefixer'; + +export default Generator('autoprefixer', options => (autoprefixer({ + browsers: [`last ${options.numVersions || 2} versions` ], +}))); diff --git a/lib/generators/postcss/AutoprexiferPostCSS.js b/lib/generators/postcss/AutoprexiferPostCSS.js deleted file mode 100644 index a2ea3c1..0000000 --- a/lib/generators/postcss/AutoprexiferPostCSS.js +++ /dev/null @@ -1,5 +0,0 @@ -var autoprefixer = require('autoprefixer'); - -module.exports = function(options) { - return autoprefixer({ browsers: ['last ' + options.numVersions + ' versions']}); -}; diff --git a/lib/generators/postcss/index.js b/lib/generators/postcss/index.js index f0c16f8..393cf5b 100644 --- a/lib/generators/postcss/index.js +++ b/lib/generators/postcss/index.js @@ -1,16 +1,6 @@ -import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; -var AutoprefixerPostCSS = require('./AutoprexiferPostCSS'); +import { generatorLoader } from 'lib/generators/tryToLoad'; +import Autoprefixer from './Autoprefixer'; -var postCSSHooks = { - 'autoprefixer-custom': AutoprefixerPostCSS, - 'autoprefixer': AutoprefixerPostCSS({ numVersions: 2 }), -}; - -var getPostCSS = function(postCSSHookName) { - return tryToLoadGenerator(postCSSHookName, postCSSHooks, 'postcsshooks'); -} - -module.exports = { - postCSSHooks, - getPostCSS, -}; +export const getPostCSS = generatorLoader('postcsshooks', [ + Autoprefixer, +]); From b0e460e7c6151b63092ae77372f5b84566a61351 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 16:11:29 -0700 Subject: [PATCH 08/14] Conver resolvers --- bin/blueprints.js | 132 ++++++++++-------- lib/generators/resolver/Modules.js | 11 ++ lib/generators/resolver/ModulesResolver.js | 13 -- lib/generators/resolver/NPMAndModules.js | 11 ++ .../resolver/NPMAndModulesResolver.js | 8 -- lib/generators/resolver/Simple.js | 5 + lib/generators/resolver/SimpleResolver.js | 5 - lib/generators/resolver/index.js | 27 ++-- 8 files changed, 107 insertions(+), 105 deletions(-) create mode 100644 lib/generators/resolver/Modules.js delete mode 100644 lib/generators/resolver/ModulesResolver.js create mode 100644 lib/generators/resolver/NPMAndModules.js delete mode 100644 lib/generators/resolver/NPMAndModulesResolver.js create mode 100644 lib/generators/resolver/Simple.js delete mode 100644 lib/generators/resolver/SimpleResolver.js diff --git a/bin/blueprints.js b/bin/blueprints.js index 972a8bc..e31b4d0 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -69,17 +69,6 @@ /***/ }, -/***/ 10: -/***/ function(module, exports) { - - module.exports = function (options) { - return { - extensions: options.extensions - }; - }; - -/***/ }, - /***/ 11: /***/ function(module, exports, __webpack_require__) { @@ -632,6 +621,70 @@ /***/ }, +/***/ 273: +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(5); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(274); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + + var simple = /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"].objectOrFunction; // its a function; + + var resolvePath = function resolvePath(strPath) { + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(strPath); + }; + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('modules', function (options) { + return _extends({}, simple(options), { + modules: (options.paths || []).map(resolvePath) + }); + }); + +/***/ }, + +/***/ 274: +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('simple', function (options) { + return { + extensions: options.extensions + }; + }); + +/***/ }, + +/***/ 275: +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(273); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + var modules = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"].objectOrFunction; // its a function; + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('npm-and-modules', function (options) { + var result = modules(options); + return _extends({}, result, { + modules: result.modules.concat('node_modules') + }); + }); + +/***/ }, + /***/ 28: /***/ function(module, exports, __webpack_require__) { @@ -715,8 +768,7 @@ } return thing; - }; - /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return tryToLoadGenerator; }}); + };/* unused harmony export tryToLoadGenerator */ var parseNameOrObject = function parseNameOrObject(nameOrObject) { if (typeof nameOrObject === 'string') { @@ -911,45 +963,22 @@ /***/ }, -/***/ 47: -/***/ function(module, exports, __webpack_require__) { - - var _ = __webpack_require__(0); - var ModulesResolver = __webpack_require__(9); - - module.exports = function (options) { - var result = ModulesResolver(options); - result.modules = result.modules.concat('node_modules'); - return result; - }; - -/***/ }, - /***/ 48: /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(273); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NPMAndModules__ = __webpack_require__(275); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Simple__ = __webpack_require__(274); - var SimpleResolver = __webpack_require__(10); - var ModulesResolver = __webpack_require__(9); - var NPMAndModulesResolver = __webpack_require__(47); - var resolvers = { - 'simple': SimpleResolver, - 'modules': ModulesResolver, - 'npm-and-modules': NPMAndModulesResolver - }; - function getResolver(resolverName) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["b"].bind()(resolverName, resolvers, 'resolver'); - } - module.exports = { - resolvers: resolvers, - getResolver: getResolver - }; + + var getResolver = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('resolver', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__NPMAndModules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__Simple__["a"]]); + /* harmony export */ Object.defineProperty(exports, "getResolver", {configurable: false, enumerable: true, get: function() { return getResolver; }}); /***/ }, @@ -1338,25 +1367,6 @@ }; }); -/***/ }, - -/***/ 9: -/***/ function(module, exports, __webpack_require__) { - - var _ = __webpack_require__(0); - var path = __webpack_require__(5); - var SimpleResolver = __webpack_require__(10); - - function resolvePath(strPath) { - return path.resolve(strPath); // path.resolve seems to have a binding issue; - } - - module.exports = function (options) { - return _.extend(SimpleResolver(options), { - modules: (options.paths || []).map(resolvePath) - }); - }; - /***/ } /******/ }); \ No newline at end of file diff --git a/lib/generators/resolver/Modules.js b/lib/generators/resolver/Modules.js new file mode 100644 index 0000000..0877a3b --- /dev/null +++ b/lib/generators/resolver/Modules.js @@ -0,0 +1,11 @@ +import path from 'path'; +import { Generator } from 'lib/generators/Generator'; +import SimpleResolver from './Simple'; +const simple = SimpleResolver.objectOrFunction; // its a function; + +const resolvePath = strPath => path.resolve(strPath); + +export default Generator('modules', options => ({ + ...simple(options), + modules: (options.paths || []).map(resolvePath), +})); diff --git a/lib/generators/resolver/ModulesResolver.js b/lib/generators/resolver/ModulesResolver.js deleted file mode 100644 index 1e10ee7..0000000 --- a/lib/generators/resolver/ModulesResolver.js +++ /dev/null @@ -1,13 +0,0 @@ -var _ = require('lodash'); -var path = require('path'); -var SimpleResolver = require('./SimpleResolver'); - -function resolvePath(strPath) { - return path.resolve(strPath); // path.resolve seems to have a binding issue; -} - -module.exports = function(options){ - return _.extend(SimpleResolver(options), { - modules: (options.paths || []).map(resolvePath), - }); -} diff --git a/lib/generators/resolver/NPMAndModules.js b/lib/generators/resolver/NPMAndModules.js new file mode 100644 index 0000000..7bc7569 --- /dev/null +++ b/lib/generators/resolver/NPMAndModules.js @@ -0,0 +1,11 @@ +import { Generator } from 'lib/generators/Generator'; +import ModulesResolver from './Modules'; +const modules = ModulesResolver.objectOrFunction; // its a function; + +export default Generator('npm-and-modules', options => { + const result = modules(options); + return { + ...result, + modules: result.modules.concat('node_modules'), + } +}); diff --git a/lib/generators/resolver/NPMAndModulesResolver.js b/lib/generators/resolver/NPMAndModulesResolver.js deleted file mode 100644 index 4cb40ea..0000000 --- a/lib/generators/resolver/NPMAndModulesResolver.js +++ /dev/null @@ -1,8 +0,0 @@ -var _ = require('lodash'); -var ModulesResolver = require('./ModulesResolver'); - -module.exports = function(options){ - var result = ModulesResolver(options); - result.modules = result.modules.concat('node_modules'); - return result; -} diff --git a/lib/generators/resolver/Simple.js b/lib/generators/resolver/Simple.js new file mode 100644 index 0000000..2cc1707 --- /dev/null +++ b/lib/generators/resolver/Simple.js @@ -0,0 +1,5 @@ +import { Generator } from 'lib/generators/Generator'; + +export default Generator('simple', options => ({ + extensions: options.extensions, +})); diff --git a/lib/generators/resolver/SimpleResolver.js b/lib/generators/resolver/SimpleResolver.js deleted file mode 100644 index fe209c5..0000000 --- a/lib/generators/resolver/SimpleResolver.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = function(options) { - return { - extensions: options.extensions, - }; -} diff --git a/lib/generators/resolver/index.js b/lib/generators/resolver/index.js index de7ab87..cc51ce7 100644 --- a/lib/generators/resolver/index.js +++ b/lib/generators/resolver/index.js @@ -1,20 +1,11 @@ -import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; +import { generatorLoader } from 'lib/generators/tryToLoad'; -var SimpleResolver = require('./SimpleResolver'); -var ModulesResolver = require('./ModulesResolver'); -var NPMAndModulesResolver = require('./NPMAndModulesResolver'); +import ModulesResolver from './Modules'; +import NPMAndModulesResolver from './NPMAndModules'; +import Simple from './Simple'; -var resolvers = { - 'simple': SimpleResolver, - 'modules': ModulesResolver, - 'npm-and-modules': NPMAndModulesResolver, -}; - -function getResolver(resolverName) { - return tryToLoadGenerator(resolverName, resolvers, 'resolver'); -} - -module.exports = { - resolvers, - getResolver, -} +export const getResolver = generatorLoader('resolver', [ + ModulesResolver, + NPMAndModulesResolver, + Simple, +]); From 84fe805712086e40909c568ba06c5a67725d955c Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 17:38:00 -0700 Subject: [PATCH 09/14] Convert most of builds --- bin/blueprints.js | 426 ++++++++++++++++++---------------- bin/webfonts.js | 44 +++- lib/build.js | 108 ++++----- lib/generators/tryToLoad.js | 1 - lib/getTestFiles.js | 21 +- lib/getWebpackEntryForTest.js | 10 +- lib/makeBuild.js | 119 +++------- src/blueprints.js | 91 ++++---- src/webfonts.js | 19 +- 9 files changed, 426 insertions(+), 413 deletions(-) diff --git a/bin/blueprints.js b/bin/blueprints.js index e31b4d0..952729b 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -72,44 +72,54 @@ /***/ 11: /***/ function(module, exports, __webpack_require__) { - /* eslint-disable */ + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier__ = __webpack_require__(52); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier___default = __WEBPACK_IMPORTED_MODULE_1_node_notifier__ && __WEBPACK_IMPORTED_MODULE_1_node_notifier__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_node_notifier__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_node_notifier__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_node_notifier___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_node_notifier___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs___default = __WEBPACK_IMPORTED_MODULE_2_fs__ && __WEBPACK_IMPORTED_MODULE_2_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_fs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_fs___default }); + + - var webpack = __webpack_require__(2); - var notifier = __webpack_require__(52); - var _ = __webpack_require__(0); - var fs = __webpack_require__(4); var nodeEnv = "production" || 'development'; - module.exports = function (config, cb) { - if (!cb) { - cb = function cb() {}; - } - config.builds.forEach(function (build) { - exectuteBuild(build, cb); - }); + var build = function build(config, cb) { + var callback = cb || function () {}; + var run = function run(build) { + return exectuteBuild(build, callback); + }; + config.builds.forEach(run); }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return build; }}); - function exectuteBuild(build, cb) { - var compiler = webpack(build.webpackConfig); + var exectuteBuild = function exectuteBuild(build, cb) { + var compiler = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack___default.a.bind()(build.webpackConfig); if (build.watch) { compiler.watch({}, function (err, stats) { outputBuild(build.buildName)(err, stats); cb(stats.toJson()); }); - } else { - compiler.run(function (err, stats) { - console.log(stats.toString({ - colors: !build.disableColors, - chunks: false, - version: false - })); - cb(stats.toJson()); - }); + + return; } - } - function formatAsset(asset) { + compiler.run(function (err, stats) { + console.log(stats.toString({ + colors: !build.disableColors, + chunks: false, + version: false + })); + + cb(stats.toJson()); + }); + }; + + var formatAsset = function formatAsset(asset) { var name = asset.name; var size = asset.size; var sizeStr = size + " B"; @@ -117,34 +127,40 @@ if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; - return name + " [" + sizeStr + "]"; - } + return name + ' [' + sizeStr + ']'; + }; - function outputBuild(type) { + var outputBuild = function outputBuild(type) { return function (err, stats) { - if (!err) { - console.log(stats.toString({ - colors: true, - chunks: false, - version: false - })); - - var s = stats.toJson(); - - if (s.errors && s.errors.length) { - notifier.notify({ - "title": type + " – ERROR!", - "message": "Check the console for errors" - }); - } else { - notifier.notify({ - "title": type + " – Build complete", - "message": s.assets.map(formatAsset).join("\n") - }); - } + if (err) { + console.log('error in build', err); + return; } + + console.log(stats.toString({ + colors: true, + chunks: false, + version: false + })); + + var buildStats = stats.toJson(); + var errors = buildStats.errors; + + + if (errors && errors.length) { + /* harmony import */__WEBPACK_IMPORTED_MODULE_1_node_notifier___default.a.notify({ + title: type + ' - ERROR!', + message: 'Check the console for errors' + }); + return; + } + + /* harmony import */__WEBPACK_IMPORTED_MODULE_1_node_notifier___default.a.notify({ + title: type + ' - Build complete', + message: buildStats.assets.map(formatAsset).join('\n') + }); }; - } + }; /***/ }, @@ -184,19 +200,22 @@ /***/ 13: /***/ function(module, exports, __webpack_require__) { - var getTestFiles = __webpack_require__(49); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__getTestFiles__ = __webpack_require__(49); + - module.exports = function getWebpackEntryForTest(dir) { + var getWebpackEntryForTest = function getWebpackEntryForTest(dir) { console.log(' Searching for tests in', process.cwd()); - var files = getTestFiles(dir, '.test.'); + var files = /* harmony import */__WEBPACK_IMPORTED_MODULE_0__getTestFiles__["a"].bind()(dir, '.test.'); console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); - return files.reduce(function (prev, cur) { + return files.reduce(function (prev, current) { var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest'; prev[moduleName] = cur.path; return prev; }, {}); }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getWebpackEntryForTest; }}); /***/ }, @@ -204,91 +223,61 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_externals__ = __webpack_require__(26); - var _ = __webpack_require__(0); - var generators = __webpack_require__(28); - var getLoader = generators.getLoader; - var getPlugin = generators.getPlugin; - var getOutput = generators.getOutput; - var getResolver = generators.getResolver; - var getEntry = generators.getEntry; - var getPostCSS = generators.getPostCSS; - - - function makeBuild(shortBuild) { - return buildObject(shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name)); - } - - function buildObject(buildName, watch, webpackConfig) { - return { - watch: watch, - buildName: buildName, - webpackConfig: webpackConfig - }; - } + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(276); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__ = __webpack_require__(34); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_generators_plugins__ = __webpack_require__(44); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lib_generators_output__ = __webpack_require__(36); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lib_generators_resolver__ = __webpack_require__(48); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ = __webpack_require__(25); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry___default = __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ && __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_5_lib_generators_entry___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lib_generators_postcss__ = __webpack_require__(46); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_generators_externals__ = __webpack_require__(26); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - function parseWebpackConfig(shortHandConfig, buildName) { - var webpackConfig = {}; - Object.keys(shortHandConfig).forEach(function (key) { - var obj = shortHandConfig[key]; - if (key === 'loaders') { - _.defaults(webpackConfig, { module: { loaders: [] } }); - concatInPlace(webpackConfig.module.loaders, obj.map(getLoader)); - } - if (key === 'plugins') { - webpackConfig.plugins = obj.map(getPlugin); - } - if (key === 'output') { - webpackConfig.output = getOutput(obj); - } - if (key === 'resolve') { - webpackConfig.resolve = getResolver(obj); - } - if (key === 'entry') { - webpackConfig.entry = getEntry(obj, buildName); - } - if (key === 'postcss') { - webpackConfig.postcss = obj.map(getPostCSS); - } - if (key === 'externals') { - webpackConfig.externals = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_externals__["a"].bind()(obj); - } - }); - return _.extend(webpackConfig, _.omit(shortHandConfig, Object.keys(webpackConfig).concat('loaders'))); - } - function concatInPlace(dest, source) { - source.forEach(function (thing) { - dest.push(thing); - }); - } + var makeBuild = function makeBuild(shortBuild) { + return buildObject(shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name)); + }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return makeBuild; }}); - function loadNameOrUseSource(thing, load) { - if (typeof thing === 'string') { - return load(thing); - } + var buildObject = function buildObject(buildName, watch, webpackConfig) { + return { + watch: watch, + buildName: buildName, + webpackConfig: webpackConfig + }; + }; - return thing; - } + var mapNullable = function mapNullable(arrayOrNull, fn) { + return (arrayOrNull || []).map(fn); + }; - function mapLoadNameOrUseSource(array, loader) { - return array.map(loader); - } + var parseWebpackConfig = function parseWebpackConfig(shortHandConfig, buildName) { + var webpackConfig = { + entry: /* harmony import */__WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__["getEntry"].bind()(shortHandConfig.entry, buildName), + output: /* harmony import */__WEBPACK_IMPORTED_MODULE_3_lib_generators_output__["a"].bind()(shortHandConfig.output), + module: { + loaders: mapNullable(shortHandConfig.loaders, /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__["a"]) + }, + plugins: mapNullable(shortHandConfig.plugins, /* harmony import */__WEBPACK_IMPORTED_MODULE_2_lib_generators_plugins__["a"]), + resolve: /* harmony import */__WEBPACK_IMPORTED_MODULE_4_lib_generators_resolver__["a"].bind()(shortHandConfig.resolve), + postcss: mapNullable(shortHandConfig.postcss, /* harmony import */__WEBPACK_IMPORTED_MODULE_6_lib_generators_postcss__["a"]), + externals: /* harmony import */__WEBPACK_IMPORTED_MODULE_7_lib_generators_externals__["a"].bind()(shortHandConfig.externals) + }; - module.exports = { - makeBuild: makeBuild, - buildObject: buildObject, - parseWebpackConfig: parseWebpackConfig, - loadNameOrUseSource: loadNameOrUseSource + return _extends({}, webpackConfig, /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(shortHandConfig, Object.keys(webpackConfig).concat('loaders'))); }; /***/ }, @@ -685,24 +674,10 @@ /***/ }, -/***/ 28: -/***/ function(module, exports, __webpack_require__) { - - var getLoader = __webpack_require__(34).getLoader; - var getPlugin = __webpack_require__(44).getPlugin; - var getOutput = __webpack_require__(36).getOutput; - var getResolver = __webpack_require__(48).getResolver; - var getEntry = __webpack_require__(25).getEntry; - var getPostCSS = __webpack_require__(46).getPostCSS; +/***/ 276: +/***/ function(module, exports) { - module.exports = { - getLoader: getLoader, - getPlugin: getPlugin, - getOutput: getOutput, - getResolver: getResolver, - getEntry: getEntry, - getPostCSS: getPostCSS - }; + module.exports = require("lodash/object"); /***/ }, @@ -763,7 +738,6 @@ } if (typeof thing === 'function') { - console.log('parsed', parsed); return thing(parsed.options); } @@ -870,7 +844,7 @@ var getLoader = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('loader', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__CSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__ESNextReact__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__JSON__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__Less__["a"]]); - /* harmony export */ Object.defineProperty(exports, "getLoader", {configurable: false, enumerable: true, get: function() { return getLoader; }}); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getLoader; }}); /***/ }, @@ -909,7 +883,7 @@ var getOutput = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('output', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Library__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"]]); - /* harmony export */ Object.defineProperty(exports, "getOutput", {configurable: false, enumerable: true, get: function() { return getOutput; }}); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getOutput; }}); /***/ }, @@ -945,7 +919,7 @@ var getPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('plugin', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__ExtractCSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_6__NodeExecutable__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__["a"]]); - /* harmony export */ Object.defineProperty(exports, "getPlugin", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); /***/ }, @@ -959,7 +933,7 @@ var getPostCSS = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('postcsshooks', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Autoprefixer__["a"]]); - /* harmony export */ Object.defineProperty(exports, "getPostCSS", {configurable: false, enumerable: true, get: function() { return getPostCSS; }}); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPostCSS; }}); /***/ }, @@ -978,17 +952,20 @@ var getResolver = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('resolver', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__NPMAndModules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__Simple__["a"]]); - /* harmony export */ Object.defineProperty(exports, "getResolver", {configurable: false, enumerable: true, get: function() { return getResolver; }}); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getResolver; }}); /***/ }, /***/ 49: /***/ function(module, exports, __webpack_require__) { - var _ = __webpack_require__(0); - var fs = __webpack_require__(4); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); + - module.exports = function getTestFiles(dir, ext) { + var getTestFiles = function getTestFiles(dir, ext) { if (dir.indexOf('node_modules') > -1) { return; } @@ -998,18 +975,18 @@ var files = []; try { - files = fs.readdirSync(dir); + files = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_fs___default.a.readdirSync(dir); } catch (e) { files = []; } return files.map(function (file) { - var path = dir + file; + var path = '' + dir + file; try { - var stats = fs.statSync(path); + var stats = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_fs___default.a.statSync(path); if (stats.isDirectory()) { - return getTestFiles(path + '/', ext); + return getTestFiles(path + '/' + ext); } if (file.indexOf(ext) > -1) { return { file: file, path: path }; @@ -1021,13 +998,14 @@ }).filter(function (x) { return x; }).reduce(function (prev, cur) { - if (_.isArray(cur)) { + if (Array.isArray(curr)) { return prev.concat(cur); } else { return prev.concat([cur]); } }, []); }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getTestFiles; }}); /***/ }, @@ -1041,56 +1019,98 @@ /***/ 50: /***/ function(module, exports, __webpack_require__) { - var _ = __webpack_require__(0); - var fs = __webpack_require__(4); - var path = __webpack_require__(5); - var debug = __webpack_require__(17)('blueprints'); - var Mocha = __webpack_require__(18); - var colors = __webpack_require__(16); - var rimraf = __webpack_require__(19); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(16); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors___default = __WEBPACK_IMPORTED_MODULE_0_colors__ && __WEBPACK_IMPORTED_MODULE_0_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_colors__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_colors___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_debug__ = __webpack_require__(17); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_debug___default = __WEBPACK_IMPORTED_MODULE_1_debug__ && __WEBPACK_IMPORTED_MODULE_1_debug__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_debug__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_debug__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_debug___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_debug___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs___default = __WEBPACK_IMPORTED_MODULE_2_fs__ && __WEBPACK_IMPORTED_MODULE_2_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_fs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_fs___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_object__ = __webpack_require__(276); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_object___default = __WEBPACK_IMPORTED_MODULE_3_lodash_object__ && __WEBPACK_IMPORTED_MODULE_3_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_lodash_object__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_lodash_object___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_mocha__ = __webpack_require__(18); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_mocha___default = __WEBPACK_IMPORTED_MODULE_4_mocha__ && __WEBPACK_IMPORTED_MODULE_4_mocha__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_4_mocha__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_4_mocha__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_4_mocha___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_4_mocha___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_path__ = __webpack_require__(5); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_path___default = __WEBPACK_IMPORTED_MODULE_5_path__ && __WEBPACK_IMPORTED_MODULE_5_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_5_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_5_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_5_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_5_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rimraf__ = __webpack_require__(19); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rimraf___default = __WEBPACK_IMPORTED_MODULE_6_rimraf__ && __WEBPACK_IMPORTED_MODULE_6_rimraf__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_6_rimraf__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_6_rimraf__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_6_rimraf___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_6_rimraf___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_yargs__ = __webpack_require__(6); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_yargs___default = __WEBPACK_IMPORTED_MODULE_7_yargs__ && __WEBPACK_IMPORTED_MODULE_7_yargs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_7_yargs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_7_yargs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_7_yargs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_7_yargs___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lib_build__ = __webpack_require__(11); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lib_makeBuild__ = __webpack_require__(14); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs__ = __webpack_require__(12); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs___default = __WEBPACK_IMPORTED_MODULE_10_lib_configs__ && __WEBPACK_IMPORTED_MODULE_10_lib_configs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_10_lib_configs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_10_lib_configs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_10_lib_configs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_10_lib_configs___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__ = __webpack_require__(13); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + + + + + + + + - var build = __webpack_require__(11); - var makeBuild = __webpack_require__(14).makeBuild; - var configs = __webpack_require__(12); - var getWebpackEntryForTest = __webpack_require__(13); - var yargs = __webpack_require__(6); - var argv = __webpack_require__(6).alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; - console.log('...Reading Blueprints', argv.blueprintsPath); - console.log('...cwd', process.cwd()); + var debug = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_debug___default.a.bind()('blueprints'); - function loadBuildsFromPath(configPath) { + /* eslint-disable max-len */ + var argv = /* harmony import */__WEBPACK_IMPORTED_MODULE_7_yargs___default.a.alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; + /* eslint-enable */ + + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('[Blueprints] reading from ' + argv.blueprintsPath)); + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('[cwd] ' + process.cwd())); + + var loadBuildsFromPath = function loadBuildsFromPath(configPath) { try { - console.log('...loading bluerprints from', configPath); - var builds = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); - console.log('builds?', builds); - if (!Array.isArray(builds)) { - if (builds.extensions === true) { - return { extensions: _.omit(builds, 'extensions') }; + conslole.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..loading config ' + configPath)); + var _builds = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); + if (!Array.isArray(_builds)) { + if (_builds.extensions === true) { + return { extensions: /* harmony import */__WEBPACK_IMPORTED_MODULE_3_lodash_object__["omit"].bind()(_builds, 'extensions') }; } - builds = [builds]; + _builds = [_builds]; } - return { builds: builds }; + return { builds: _builds }; } catch (e) { debug(e); return {}; } - } + }; - function applyExtensions(builds, extensions) { + var applyExtensions = function applyExtensions(builds, extensions) { var ext = extensions || {}; - console.log('...applying extensions', extensions); + if (Object.keys(ext).length > 0) { + /* eslint-disable max-len */ + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('[extensions]') + ': ' + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.white(JSON.stringify(extensions, null, 2))); + /* eslint-enable */ + } + return builds.map(function (build) { - return _.merge(build, ext); + return _extends({}, build, ext); }); - } + }; - function makeConfig(builds, extensions) { - return { builds: applyExtensions(builds, extensions).map(makeBuild) }; - } + var makeConfig = function makeConfig(builds, extensions) { + return { + builds: applyExtensions(builds, extensions).map(/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_makeBuild__["a"]) + }; + }; var builds = []; var extensions = {}; @@ -1104,23 +1124,23 @@ } } - function loadDefaultConfigs() { - console.log('...using default configs'); + var loadDefaultConfigs = function loadDefaultConfigs() { + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..using default configs')); if (argv.runTest) { - console.log('...Setting up tests:'); - builds = [configs.DefaultTestingConfig]; - builds[0].webpack.entry = getWebpackEntryForTest('./'); + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.magenta('..Setting up tests:')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.DefaultTestingConfig]; + builds[0].webpack.entry = /* harmony import */__WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__["a"].bind()('./'); } else if (argv.client) { - console.log('...client'); - builds = [configs.getClientConfig(argv.production)]; + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..client')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getClientConfig(argv.production)]; } else if (argv.server) { - console.log('...server'); - builds = [configs.getServerConfig(argv.production)]; + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..server')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getServerConfig(argv.production)]; } else if (argv.clientAndServer) { - console.log('...both'); - builds = [configs.getClientConfig(argv.production), configs.getServerConfig(argv.production)]; + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..both')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getClientConfig(argv.production), /* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getServerConfig(argv.production)]; } - } + }; if (!builds.length) { loadDefaultConfigs(); @@ -1130,23 +1150,23 @@ extensions.watch = true; } - build(makeConfig(builds, extensions), function (stats) { + /* harmony import */__WEBPACK_IMPORTED_MODULE_8_lib_build__["a"].bind()(makeConfig(builds, extensions), function (stats) { if (stats.errors && stats.errors.length > 0 && !argv.watch) { - console.log(colors.red('ERROR IN BUILD. Aborting.')); + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.red('ERROR IN BUILD. Aborting.')); process.exit(1); } if (argv.runTest) { - console.log(colors.magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); - var m = new Mocha(); + var m = new /* harmony import */__WEBPACK_IMPORTED_MODULE_4_mocha___default.a(); stats.assets.forEach(function (asset) { var path = './.test/' + asset.name; m.addFile(path); }); m.run().on('end', function () { - rimraf('./.test/', function () {}); + /* harmony import */__WEBPACK_IMPORTED_MODULE_6_rimraf___default.a.bind()('./.test/', function () {}); }); } }); diff --git a/bin/webfonts.js b/bin/webfonts.js index 642ec57..73e9b3d 100755 --- a/bin/webfonts.js +++ b/bin/webfonts.js @@ -63,21 +63,41 @@ /* 3 */ /***/ function(module, exports, __webpack_require__) { - var glob = __webpack_require__(0); - var path = __webpack_require__(1); - var webfontsGenerator = __webpack_require__(2); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors___default = __WEBPACK_IMPORTED_MODULE_0_colors__ && __WEBPACK_IMPORTED_MODULE_0_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_colors__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_colors___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_glob__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_glob___default = __WEBPACK_IMPORTED_MODULE_1_glob__ && __WEBPACK_IMPORTED_MODULE_1_glob__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_glob__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_glob__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_glob___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_glob___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path___default = __WEBPACK_IMPORTED_MODULE_2_path__ && __WEBPACK_IMPORTED_MODULE_2_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default = __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__ && __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default }); - var SRC = path.resolve('./assets/svg/*.svg'); - glob(SRC, function (error, files) { - console.log('generating font from:\n', files); - webfontsGenerator({ + + + var SRC = /* harmony import */__WEBPACK_IMPORTED_MODULE_2_path___default.a.resolve('./assets/svg/*.svg'); + + /* harmony import */__WEBPACK_IMPORTED_MODULE_1_glob___default.a.bind()(SRC, function (error, files) { + /* eslint-disable max-len */ + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.yellow('[Webfonts] generating from') + ' ' + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.white(JSON.stringify(files, null, 2))); + /* eslint-enable */ + + if (error) { + console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.red('[Error]') + ' ' + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.white(JSON.stringify(error, null, 2))); + } + + /* harmony import */__WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default.a.bind()({ files: files, - dest: path.resolve('./assets/fonts'), + dest: /* harmony import */__WEBPACK_IMPORTED_MODULE_2_path___default.a.resolve('./assets/fonts'), fontName: 'rfont', css: true, - cssDest: path.resolve('./assets/fonts/rfont.css'), + cssDest: /* harmony import */__WEBPACK_IMPORTED_MODULE_2_path___default.a.resolve('./assets/fonts/rfont.css'), cssFontsUrl: '/fonts', html: true, types: ['svg', 'ttf', 'woff', 'eot'], @@ -85,5 +105,11 @@ }); }); +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + module.exports = require("colors"); + /***/ } /******/ ]); \ No newline at end of file diff --git a/lib/build.js b/lib/build.js index 83922e9..423de9d 100644 --- a/lib/build.js +++ b/lib/build.js @@ -1,71 +1,73 @@ -/* eslint-disable */ - -var webpack = require('webpack'); -var notifier = require('node-notifier'); -var _ = require('lodash'); -var fs = require('fs'); +import webpack from 'webpack'; +import notifier from 'node-notifier'; +import fs from 'fs'; const nodeEnv = process.env.NODE_ENV || 'development'; -module.exports = function(config, cb) { - if (!cb) { cb = function() {}; } - config.builds.forEach(function(build) { - exectuteBuild(build, cb); - }); -} +export const build = (config, cb) => { + const callback = cb || (() => {}); + const run = build => exectuteBuild(build, callback); + config.builds.forEach(run); +}; -function exectuteBuild(build, cb) { - var compiler = webpack(build.webpackConfig); +const exectuteBuild = (build, cb) => { + const compiler = webpack(build.webpackConfig); if (build.watch) { - compiler.watch({}, function(err, stats) { + compiler.watch({}, (err, stats) => { outputBuild(build.buildName)(err, stats); cb(stats.toJson()); }); - } else { - compiler.run(function(err, stats) { - console.log(stats.toString({ - colors: !build.disableColors, - chunks: false, - version: false, - })); - cb(stats.toJson()); - }); + + return; } -} -function formatAsset(asset) { - var name = asset.name; - var size = asset.size; - var sizeStr = size + " B"; + compiler.run((err, stats) => { + console.log(stats.toString({ + colors: !build.disableColors, + chunks: false, + version: false, + })); + + cb(stats.toJson()); + }); +}; + +const formatAsset = asset => { + const name = asset.name; + const size = asset.size; + let sizeStr = size + " B"; if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; - return name + " [" + sizeStr + "]"; -} + return `${name} [${sizeStr}]`; +}; + +const outputBuild = type => (err, stats) => { + if (err) { + console.log(`error in build`, err); + return; + } -function outputBuild(type) { - return function(err, stats) { - if (!err) { - console.log(stats.toString({ - colors: true, - chunks: false, - version: false, - })); + console.log(stats.toString({ + colors: true, + chunks: false, + version: false, + })); - var s = stats.toJson(); + const buildStats = stats.toJson(); + const { errors } = buildStats - if (s.errors && s.errors.length) { - notifier.notify({ - "title": type + " – ERROR!", - "message": "Check the console for errors", - }); - } else { - notifier.notify({ - "title": type + " – Build complete", - "message": s.assets.map(formatAsset).join("\n"), - }); - } - } + if (errors && errors.length) { + notifier.notify({ + title: `${type} - ERROR!`, + message: 'Check the console for errors', + }); + return; } -} + + notifier.notify({ + title: `${type} - Build complete`, + message: buildStats.assets.map(formatAsset).join('\n'), + }); +}; diff --git a/lib/generators/tryToLoad.js b/lib/generators/tryToLoad.js index fbdfe8b..6a53139 100644 --- a/lib/generators/tryToLoad.js +++ b/lib/generators/tryToLoad.js @@ -23,7 +23,6 @@ export const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => { } if (typeof thing === 'function') { - console.log('parsed', parsed); return thing(parsed.options); } diff --git a/lib/getTestFiles.js b/lib/getTestFiles.js index 24193dc..052d8c7 100644 --- a/lib/getTestFiles.js +++ b/lib/getTestFiles.js @@ -1,11 +1,10 @@ -var _ = require('lodash'); -var fs = require('fs'); +import fs from 'fs'; -module.exports = function getTestFiles(dir, ext) { +export const getTestFiles = (dir, ext) => { if (dir.indexOf('node_modules') > -1) { return; } if (dir.indexOf('.git') > -1) { return; } - var files = []; + let files = []; try { files = fs.readdirSync(dir); } catch (e) { @@ -13,12 +12,12 @@ module.exports = function getTestFiles(dir, ext) { } return files - .map(function(file) { - var path = dir + file; + .map(file => { + const path = `${dir}${file}`; try { - var stats = fs.statSync(path); - if (stats.isDirectory()) { return getTestFiles(path + '/', ext); } + const stats = fs.statSync(path); + if (stats.isDirectory()) { return getTestFiles(`${path}/${ext}`); } if (file.indexOf(ext) > -1) { return { file, path }; } return null; } @@ -26,9 +25,9 @@ module.exports = function getTestFiles(dir, ext) { return null; } }) - .filter(function(x) { return x; }) - .reduce(function(prev, cur) { - if (_.isArray(cur)) { + .filter(x => x) + .reduce((prev, cur) => { + if (Array.isArray(curr)) { return prev.concat(cur); } else { return prev.concat([cur]); diff --git a/lib/getWebpackEntryForTest.js b/lib/getWebpackEntryForTest.js index db5c92a..93867c9 100644 --- a/lib/getWebpackEntryForTest.js +++ b/lib/getWebpackEntryForTest.js @@ -1,12 +1,12 @@ -var getTestFiles = require('./getTestFiles'); +import { getTestFiles } from './getTestFiles'; -module.exports = function getWebpackEntryForTest(dir) { +export const getWebpackEntryForTest = dir => { console.log(' Searching for tests in', process.cwd()); - var files = getTestFiles(dir, '.test.'); + const files = getTestFiles(dir, '.test.'); console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); - return files.reduce(function(prev, cur) { - var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest'; + return files.reduce((prev, current) => { + const moduleName = `${cur.path.split('.test')[0].split('./')[1]}.compiledtest`; prev[moduleName] = cur.path; return prev; }, {}); diff --git a/lib/makeBuild.js b/lib/makeBuild.js index b4ee2b8..bca182d 100644 --- a/lib/makeBuild.js +++ b/lib/makeBuild.js @@ -1,89 +1,42 @@ -var _ = require('lodash'); -var generators = require('./generators'); -var getLoader = generators.getLoader; -var getPlugin = generators.getPlugin; -var getOutput = generators.getOutput; -var getResolver = generators.getResolver; -var getEntry = generators.getEntry; -var getPostCSS = generators.getPostCSS; +import { omit } from 'lodash/object'; + +import { getLoader } from 'lib/generators/loaders'; +import { getPlugin } from 'lib/generators/plugins'; +import { getOutput } from 'lib/generators/output'; +import { getResolver } from 'lib/generators/resolver'; +import { getEntry } from 'lib/generators/entry'; +import { getPostCSS } from 'lib/generators/postcss'; import { getExternals } from 'lib/generators/externals'; -function makeBuild(shortBuild) { - return buildObject(shortBuild.name, - shortBuild.watch, - parseWebpackConfig(shortBuild.webpack, shortBuild.name)) -} +export const makeBuild = shortBuild => (buildObject( + shortBuild.name, + shortBuild.watch, + parseWebpackConfig(shortBuild.webpack, shortBuild.name) +)) + +const buildObject = (buildName, watch, webpackConfig) => ({ + watch, + buildName, + webpackConfig, +}) + +const mapNullable = (arrayOrNull, fn) => (arrayOrNull || []).map(fn); + +const parseWebpackConfig = (shortHandConfig, buildName) => { + const webpackConfig = { + entry: getEntry(shortHandConfig.entry, buildName), + output: getOutput(shortHandConfig.output), + module: { + loaders: mapNullable(shortHandConfig.loaders, getLoader), + }, + plugins: mapNullable(shortHandConfig.plugins, getPlugin), + resolve: getResolver(shortHandConfig.resolve), + postcss: mapNullable(shortHandConfig.postcss, getPostCSS), + externals: getExternals(shortHandConfig.externals), + }; -function buildObject(buildName, watch, webpackConfig) { return { - watch, - buildName, - webpackConfig, + ...webpackConfig, + ...omit(shortHandConfig, Object.keys(webpackConfig).concat('loaders')), }; } - -function parseWebpackConfig(shortHandConfig, buildName) { - var webpackConfig = {}; - - Object.keys(shortHandConfig).forEach(function(key) { - var obj = shortHandConfig[key]; - - if (key === 'loaders') { - _.defaults(webpackConfig, { module: { loaders: [] }}); - concatInPlace( - webpackConfig.module.loaders, - obj.map(getLoader) - ); - } - - if (key === 'plugins') { - webpackConfig.plugins = obj.map(getPlugin); - } - - if (key === 'output') { - webpackConfig.output = getOutput(obj); - } - - if (key === 'resolve') { - webpackConfig.resolve = getResolver(obj); - } - - if (key === 'entry') { - webpackConfig.entry = getEntry(obj, buildName); - } - - if (key === 'postcss') { - webpackConfig.postcss = obj.map(getPostCSS); - } - - if (key === 'externals') { - webpackConfig.externals = getExternals(obj); - } - }); - - return _.extend(webpackConfig, _.omit(shortHandConfig, - Object.keys(webpackConfig).concat('loaders'))); -} - -function concatInPlace(dest, source) { - source.forEach(function(thing) { dest.push(thing) }); -} - -function loadNameOrUseSource(thing, load) { - if (typeof thing === 'string') { - return load(thing); - } - - return thing; -} - -function mapLoadNameOrUseSource(array, loader) { - return array.map(loader); -} - -module.exports = { - makeBuild, - buildObject, - parseWebpackConfig, - loadNameOrUseSource, -}; diff --git a/src/blueprints.js b/src/blueprints.js index eb0357d..6da283f 100755 --- a/src/blueprints.js +++ b/src/blueprints.js @@ -1,19 +1,21 @@ -var _ = require('lodash'); -var fs = require('fs'); -var path = require('path'); -var debug = require('debug')('blueprints'); -var Mocha = require('mocha'); -var colors = require('colors'); -var rimraf = require('rimraf'); - -var build = require('../lib/build'); -var makeBuild = require('../lib/makeBuild').makeBuild; -var configs = require('../lib/configs'); -var getWebpackEntryForTest = require('../lib/getWebpackEntryForTest'); - -var yargs = require('yargs'); - -var argv = require('yargs') +import colors from 'colors'; +import debugModule from 'debug' +import fs from 'fs'; +import { omit } from 'lodash/object'; +import Mocha from 'mocha'; +import path from 'path'; +import rimraf from 'rimraf'; +import yargs from 'yargs'; + +import { build } from 'lib/build'; +import { makeBuild } from 'lib/makeBuild'; +import configs from 'lib/configs'; +import { getWebpackEntryForTest } from 'lib/getWebpackEntryForTest'; + +const debug = debugModule('blueprints'); + +/* eslint-disable max-len */ +const argv = yargs .alias('b', 'blueprintsPath') .describe('b', 'path to a raw-config via a node file with moduel.exports = config') .default('b', './blueprints.config.js') @@ -39,18 +41,18 @@ var argv = require('yargs') .describe('search for test files and run them') .default('t', false) .argv; +/* eslint-enable */ -console.log('...Reading Blueprints', argv.blueprintsPath); -console.log('...cwd', process.cwd()); +console.log(colors.blue(`[Blueprints] reading from ${argv.blueprintsPath}`)); +console.log(colors.blue(`[cwd] ${process.cwd()}`)); -function loadBuildsFromPath(configPath) { +const loadBuildsFromPath = configPath => { try { - console.log('...loading bluerprints from', configPath) - var builds = require(path.resolve(configPath)); - console.log('builds?', builds) + conslole.log(colors.blue(`..loading config ${configPath}`)); + let builds = require(path.resolve(configPath)); if (!Array.isArray(builds)) { if (builds.extensions === true) { - return { extensions: _.omit(builds, 'extensions') }; + return { extensions: omit(builds, 'extensions') }; } builds = [builds]; } @@ -60,23 +62,28 @@ function loadBuildsFromPath(configPath) { debug(e); return {}; } -} +}; + +const applyExtensions = (builds, extensions) => { + const ext = extensions || {}; + if (Object.keys(ext).length > 0) { + /* eslint-disable max-len */ + console.log(`${colors.blue('[extensions]')}: ${colors.white(JSON.stringify(extensions, null, 2))}`); + /* eslint-enable */ + } -function applyExtensions(builds, extensions) { - var ext = extensions || {}; - console.log('...applying extensions', extensions); - return builds.map(function(build) { return _.merge(build, ext ); }); -} + return builds.map(build => ({ ...build, ...ext })); +}; -function makeConfig(builds, extensions) { - return { builds: applyExtensions(builds, extensions).map(makeBuild) }; -} +const makeConfig = (builds, extensions) => ({ + builds: applyExtensions(builds, extensions).map(makeBuild) +}) -var builds = []; -var extensions = {}; +let builds = []; +let extensions = {}; if (argv.blueprintsPath && !argv.ignoreBlueprints) { - var blueprints = loadBuildsFromPath(argv.blueprintsPath); + const blueprints = loadBuildsFromPath(argv.blueprintsPath); if (blueprints.extensions) { extensions = blueprints.extensions; } else if (blueprints.builds && blueprints.builds.length) { @@ -84,20 +91,20 @@ if (argv.blueprintsPath && !argv.ignoreBlueprints) { } } -function loadDefaultConfigs() { - console.log('...using default configs'); +const loadDefaultConfigs = () => { + console.log(colors.blue('..using default configs')); if (argv.runTest) { - console.log('...Setting up tests:'); + console.log(colors.magenta('..Setting up tests:')); builds = [ configs.DefaultTestingConfig ]; builds[0].webpack.entry = getWebpackEntryForTest('./'); } else if (argv.client) { - console.log('...client'); + console.log(colors.blue('..client')); builds = [ configs.getClientConfig(argv.production) ]; } else if (argv.server) { - console.log('...server'); + console.log(colors.blue('..server')); builds = [ configs.getServerConfig(argv.production) ]; } else if (argv.clientAndServer) { - console.log('...both'); + console.log(colors.blue('..both')); builds = [ configs.getClientConfig(argv.production), configs.getServerConfig(argv.production), @@ -113,7 +120,7 @@ if (argv.watch) { extensions.watch = true; } -build(makeConfig(builds, extensions), function(stats) { +build(makeConfig(builds, extensions), stats => { if (stats.errors && stats.errors.length > 0 && !argv.watch) { console.log(colors.red( 'ERROR IN BUILD. Aborting.' diff --git a/src/webfonts.js b/src/webfonts.js index 01d4500..6b7f47a 100755 --- a/src/webfonts.js +++ b/src/webfonts.js @@ -1,11 +1,18 @@ -var glob = require('glob'); -var path = require('path'); -var webfontsGenerator = require('webfonts-generator'); +import colors from 'colors'; +import glob from 'glob'; +import path from 'path'; +import webfontsGenerator from 'webfonts-generator'; -var SRC = path.resolve('./assets/svg/*.svg'); +const SRC = path.resolve('./assets/svg/*.svg'); -glob(SRC, function(error, files) { - console.log('generating font from:\n', files); +glob(SRC, (error, files) => { + /* eslint-disable max-len */ + console.log(`${colors.yellow('[Webfonts] generating from')} ${colors.white(JSON.stringify(files, null, 2))}`); + /* eslint-enable */ + + if (error) { + console.log(`${colors.red('[Error]')} ${colors.white(JSON.stringify(error, null, 2))}`); + } webfontsGenerator({ files: files, From f9eea45b673016421f021012281c5b74c3a8db1f Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 27 May 2016 18:07:55 -0700 Subject: [PATCH 10/14] Last bit of es6/7'ification. Linter fixes --- .eslintrc | 12 +- bin/blueprints.js | 1451 ++++++++--------- bin/webfonts.js | 28 +- lib/build.js | 15 +- .../{DefaultClientConfig.js => Client.js} | 2 +- ...ionClientConfig.js => ProductionClient.js} | 4 +- ...ionServerConfig.js => ProductionServer.js} | 4 +- .../{DefaultServerConfig.js => Server.js} | 4 +- .../{DefaultTestingConfig.js => Testing.js} | 8 +- lib/configs/index.js | 33 +- lib/generators/Generator.js | 11 - lib/generators/entry/index.js | 16 +- lib/generators/index.js | 68 +- lib/generators/loaders/CSS.js | 2 +- lib/generators/loaders/ESNextReact.js | 2 +- lib/generators/loaders/IgnoreStyles.js | 2 +- lib/generators/loaders/JSON.js | 2 +- lib/generators/loaders/Less.js | 2 +- lib/generators/loaders/index.js | 2 +- lib/generators/output/Library.js | 2 +- lib/generators/output/Simple.js | 2 +- lib/generators/output/index.js | 2 +- lib/generators/plugins/AbortIfErrors.js | 2 +- lib/generators/plugins/BundleCommonChunks.js | 10 +- .../plugins/EnableProductionLoaders.js | 4 +- lib/generators/plugins/ExtractCSS.js | 2 +- lib/generators/plugins/MinifyAndTreeShake.js | 7 +- lib/generators/plugins/NodeExecutable.js | 2 +- lib/generators/plugins/NodeLoadSourceMaps.js | 2 +- lib/generators/plugins/SetNodeEnvironment.js | 2 +- lib/generators/plugins/index.js | 2 +- lib/generators/postcss/Autoprefixer.js | 2 +- lib/generators/postcss/index.js | 2 +- lib/generators/resolver/Modules.js | 2 +- lib/generators/resolver/NPMAndModules.js | 4 +- lib/generators/resolver/Simple.js | 2 +- lib/generators/resolver/index.js | 2 +- lib/generators/tryToLoad.js | 43 - lib/getTestFiles.js | 9 +- lib/getWebpackEntryForTest.js | 10 +- lib/makeBuild.js | 6 +- src/blueprints.js | 60 +- src/webfonts.js | 4 +- 43 files changed, 881 insertions(+), 972 deletions(-) rename lib/configs/{DefaultClientConfig.js => Client.js} (96%) rename lib/configs/{DefaultProductionClientConfig.js => ProductionClient.js} (87%) rename lib/configs/{DefaultProductionServerConfig.js => ProductionServer.js} (89%) rename lib/configs/{DefaultServerConfig.js => Server.js} (89%) rename lib/configs/{DefaultTestingConfig.js => Testing.js} (90%) delete mode 100644 lib/generators/Generator.js delete mode 100644 lib/generators/tryToLoad.js diff --git a/.eslintrc b/.eslintrc index 41f7a23..3d4f920 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,6 +13,13 @@ "extends": "eslint:recommended", + "globals": { + // having some trouble getting eslint to recognize es6 features + "Promise": false, + "Set": false, + "Map": flase, + }, + // plugins let use use custom rules below "plugins": [ "babel", @@ -52,6 +59,7 @@ "comma-dangle": [2, "always-multiline"], "consistent-return": 0, "indent": [2, 2, {"SwitchCase": 1}], + "keyword-spacing": [2], "max-len": [1, 100, 2, {"ignoreComments": true}], "no-cond-assign": [2, "always"], "no-console": 0, @@ -78,12 +86,10 @@ "no-underscore-dangle": 0, "quotes": [2, "single"], "semi": [2, "always"], - "space-after-keywords": [2, "always"], "space-before-blocks": [2, "always"], "space-before-function-parentheses": [0, "never"], "space-in-brackets": [0, "never"], "space-in-parens": [2, "never"], - "space-return-throw-case": 1, "space-unary-ops": [1, { "words": true, "nonwords": false }], "strict": [2, "never"], "use-isnan": 2, @@ -103,7 +109,7 @@ "no-iterator": 2, "no-labels": 2, "no-lone-blocks": 2, - "no-loop-func": 2, + "no-loop-func": 0, "no-multi-spaces": 2, "no-multi-str": 2, "no-native-reassign": 2, diff --git a/bin/blueprints.js b/bin/blueprints.js index 952729b..7e26752 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -38,22 +38,18 @@ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 50); +/******/ return __webpack_require__(__webpack_require__.s = 49); /******/ }) /************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports) { - - module.exports = require("lodash"); - -/***/ }, - -/***/ 1: +/******/ ([ +/* 0 */ /***/ function(module, exports, __webpack_require__) { "use strict"; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + var Generator = function Generator(nameOrNames, objectOrFunction) { var names = nameOrNames; if (!Array.isArray(names)) { @@ -67,27 +63,160 @@ }; /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return Generator; }}); + var applyGenerators = function applyGenerators(loaders, generator) { + generator.names.forEach(function (name) { + loaders[name] = generator.objectOrFunction; + }); + + return loaders; + }; + + var generatorLoader = function generatorLoader(thingKind, generators) { + var loaders = generators.reduce(function (prev, generator) { + return applyGenerators(_extends({}, prev), generator); + }, {}); + return function (loaderName) { + return tryToLoadGenerator(loaderName, loaders, thingKind); + }; + }; + /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return generatorLoader; }}); + + var tryToLoadGenerator = function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { + var parsed = parseNameOrObject(nameOrObject); + if (!parsed) { + return nameOrObject; + } + + var thing = lookupTable[parsed.name]; + if (!thing) { + throw new Error('Failed to resolve ' + nameOrObject + ' - ' + thingKind); + } + + if (typeof thing === 'function') { + return thing(parsed.options); + } + + return thing; + };/* unused harmony export tryToLoadGenerator */ + + var parseNameOrObject = function parseNameOrObject(nameOrObject) { + if (typeof nameOrObject === 'string') { + return { name: nameOrObject, options: {} }; + } + + if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { + var name = nameOrObject.generator; + if (typeof name === 'string') { + return { name: name, options: nameOrObject }; + } + } + }; + +/***/ }, +/* 1 */ +/***/ function(module, exports) { + + module.exports = require("webpack"); + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + + module.exports = require("fs"); + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + module.exports = require("path"); + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + module.exports = require("extract-text-webpack-plugin"); + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + module.exports = require("lodash/object"); + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); + + + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('simple', function (options) { + return { + path: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(options.dest), + filename: options.name || '[name].js' + }; + }); + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(8); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + + var simple = /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"].objectOrFunction; // its a function; + + var resolvePath = function resolvePath(strPath) { + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(strPath); + }; + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('modules', function (options) { + return _extends({}, simple(options), { + modules: (options.paths || []).map(resolvePath) + }); + }); + /***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()('simple', function (options) { + return { + extensions: options.extensions + }; + }); -/***/ 11: +/***/ }, +/* 9 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier__ = __webpack_require__(52); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier___default = __WEBPACK_IMPORTED_MODULE_1_node_notifier__ && __WEBPACK_IMPORTED_MODULE_1_node_notifier__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_node_notifier__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_node_notifier__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_node_notifier___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_node_notifier___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs__ = __webpack_require__(4); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs___default = __WEBPACK_IMPORTED_MODULE_2_fs__ && __WEBPACK_IMPORTED_MODULE_2_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_fs__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_fs___default }); - - var nodeEnv = "production" || 'development'; - var build = function build(config, cb) { var callback = cb || function () {}; var run = function run(build) { @@ -122,10 +251,14 @@ var formatAsset = function formatAsset(asset) { var name = asset.name; var size = asset.size; - var sizeStr = size + " B"; + var sizeStr = size + ' B'; - if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; - if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; + if (size > 1000) { + sizeStr = Math.ceil(size / 1000) + ' kB'; + } + if (size > 1000000) { + sizeStr = Math.ceil(size / 1000000) + ' MB'; + } return name + ' [' + sizeStr + ']'; }; @@ -163,53 +296,55 @@ }; /***/ }, - -/***/ 12: +/* 10 */ /***/ function(module, exports, __webpack_require__) { - var DefaultClientConfig = __webpack_require__(20); - var DefaultProductionClientConfig = __webpack_require__(21); - var DefaultServerConfig = __webpack_require__(23); - var DefaultProductionServerConfig = __webpack_require__(22); - var DefaultTestingConfig = __webpack_require__(24); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Client__ = __webpack_require__(53); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ProductionClient__ = __webpack_require__(54); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Server__ = __webpack_require__(56); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ProductionServer__ = __webpack_require__(55); - function getBuild(production, debugConfig, productionConfig) { - return production ? productionConfig : debugConfig; - } - function getClientConfig(production) { - return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig); - } - function getServerConfig(production) { - return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig); - } - module.exports = { - DefaultClientConfig: DefaultClientConfig, - DefaultProductionClientConfig: DefaultProductionClientConfig, - DefaultServerConfig: DefaultServerConfig, - DefaultProductionServerConfig: DefaultProductionServerConfig, - DefaultTestingConfig: DefaultTestingConfig, - getClientConfig: getClientConfig, - getServerConfig: getServerConfig + + var getBuild = function getBuild(production, debugConfig, productionConfig) { + return production ? productionConfig : debugConfig; + }; + + var getClientConfig = function getClientConfig(production) { + return getBuild(production, /* harmony import */__WEBPACK_IMPORTED_MODULE_0__Client__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_1__ProductionClient__["a"]); }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getClientConfig; }}); -/***/ }, + var getServerConfig = function getServerConfig(production) { + return getBuild(production, /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Server__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__ProductionServer__["a"]); + }; + /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return getServerConfig; }}); -/***/ 13: +/***/ }, +/* 11 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__getTestFiles__ = __webpack_require__(49); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(14); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors___default = __WEBPACK_IMPORTED_MODULE_0_colors__ && __WEBPACK_IMPORTED_MODULE_0_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_colors__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_colors___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getTestFiles__ = __webpack_require__(48); + + + + var magenta = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.magenta; var getWebpackEntryForTest = function getWebpackEntryForTest(dir) { - console.log(' Searching for tests in', process.cwd()); - var files = /* harmony import */__WEBPACK_IMPORTED_MODULE_0__getTestFiles__["a"].bind()(dir, '.test.'); - console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); + console.log(magenta('Searching for tests in ' + process.cwd())); - return files.reduce(function (prev, current) { + var files = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__getTestFiles__["a"].bind()(dir, '.test.'); + console.log(magenta('Found ' + files.length + ' test' + (files.length ? 's' : ''))); + + return files.reduce(function (prev, cur) { var moduleName = cur.path.split('.test')[0].split('./')[1] + '.compiledtest'; prev[moduleName] = cur.path; return prev; @@ -218,23 +353,20 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getWebpackEntryForTest; }}); /***/ }, - -/***/ 14: +/* 12 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(276); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__ = __webpack_require__(34); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_generators_plugins__ = __webpack_require__(44); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lib_generators_output__ = __webpack_require__(36); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lib_generators_resolver__ = __webpack_require__(48); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ = __webpack_require__(25); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry___default = __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ && __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_5_lib_generators_entry___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lib_generators_postcss__ = __webpack_require__(46); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_generators_externals__ = __webpack_require__(26); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__ = __webpack_require__(32); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_generators_plugins__ = __webpack_require__(43); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lib_generators_output__ = __webpack_require__(34); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lib_generators_resolver__ = __webpack_require__(47); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ = __webpack_require__(24); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lib_generators_postcss__ = __webpack_require__(45); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_generators_externals__ = __webpack_require__(25); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; @@ -266,7 +398,7 @@ var parseWebpackConfig = function parseWebpackConfig(shortHandConfig, buildName) { var webpackConfig = { - entry: /* harmony import */__WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__["getEntry"].bind()(shortHandConfig.entry, buildName), + entry: /* harmony import */__WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__["a"].bind()(shortHandConfig.entry, buildName), output: /* harmony import */__WEBPACK_IMPORTED_MODULE_3_lib_generators_output__["a"].bind()(shortHandConfig.output), module: { loaders: mapNullable(shortHandConfig.loaders, /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__["a"]) @@ -281,8 +413,7 @@ }; /***/ }, - -/***/ 15: +/* 13 */ /***/ function(module, exports) { function webpackEmptyContext(req) { @@ -291,550 +422,453 @@ webpackEmptyContext.keys = function() { return []; }; webpackEmptyContext.resolve = webpackEmptyContext; module.exports = webpackEmptyContext; - webpackEmptyContext.id = 15; + webpackEmptyContext.id = 13; /***/ }, - -/***/ 16: +/* 14 */ /***/ function(module, exports) { module.exports = require("colors"); /***/ }, - -/***/ 17: +/* 15 */ /***/ function(module, exports) { module.exports = require("debug"); /***/ }, - -/***/ 18: +/* 16 */ /***/ function(module, exports) { module.exports = require("mocha"); /***/ }, - -/***/ 19: +/* 17 */ /***/ function(module, exports) { module.exports = require("rimraf"); /***/ }, - -/***/ 2: +/* 18 */ /***/ function(module, exports) { - module.exports = require("webpack"); + module.exports = require("yargs"); /***/ }, +/* 19 */, +/* 20 */, +/* 21 */, +/* 22 */, +/* 23 */, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { -/***/ 20: -/***/ function(module, exports) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - module.exports = { - name: 'Client', - webpack: { - devtool: 'source-map', - entry: './src/Client.js', - output: { - generator: 'simple', - dest: './bin' - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'css', 'less'], - plugins: ['extract-css', 'abort-if-errors', { - generator: 'set-node-env', - env: 'client' - }] + + + var getEntry = function getEntry(pathOrObject, buildName) { + // for now takes the path to the file, and the build name and makes + // the entry point object. in the future we can do things like auto traverers + // the module paths you're resolving and generate tree-shaking-less umd ready builds + // but if everything internal is using the build project its a little pointless + // return tryToLoadGenerator(entryName, entryGenerators, 'entry'); + if ((typeof pathOrObject === 'undefined' ? 'undefined' : _typeof(pathOrObject)) === 'object') { + return pathOrObject; } + + var entryConfig = {}; + entryConfig[buildName] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(pathOrObject); + return entryConfig; }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getEntry; }}); /***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { -/***/ 21: -/***/ function(module, exports) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadNodeModules__ = __webpack_require__(26); + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - module.exports = { - name: 'ProductionClient', - webpack: { - devtool: 'source-map', - entry: './src/Client.js', - output: { - generator: 'simple', - dest: './bin' - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'css', 'less'], - plugins: ['extract-css', { - generator: 'set-node-env', - env: 'client' - }, 'production-loaders', 'minify-and-treeshake', 'abort-if-errors'] + + + var loaderName = 'node-modules'; + + var getExternals = function getExternals(externals) { + if (typeof externals === 'string') { + if (externals === loaderName) { + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(); + } + + throw new Error('Invalid externals loader name, did you mean: ' + loaderName + ' ?'); + } + + if ((typeof externals === 'undefined' ? 'undefined' : _typeof(externals)) === 'object') { + if (externals.generator === loaderName) { + return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(externals.additional); + } + + return externals; } }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getExternals; }}); /***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { -/***/ 22: -/***/ function(module, exports) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); - module.exports = { - name: 'ProductionServer', - webpack: { - devtool: 'source-map', - entry: './src/Server.js', - output: { - generator: 'simple', - dest: './bin' - }, - externals: { - generator: 'node-modules', - additional: ['os'] - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'ignore-styles'], - plugins: ['production-loaders', 'minify-and-treeshake', 'abort-if-errors', 'node-load-sourcemaps'], - node: { - Buffer: false, - process: false, - global: false, - __filename: true, - __dirname: true - } - } + + var prependCommonjs = function prependCommonjs(modules, name) { + modules[name] = 'commonjs ' + name; + return modules; }; -/***/ }, + var lodashSubmodules = ['array', 'collection', 'date', 'function', 'lang', 'math', 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods'].map(function (name) { + return 'lodash/' + name; + }); -/***/ 23: -/***/ function(module, exports) { + var loadNodeModules = function loadNodeModules(additional) { + var nodeModules = {}; - module.exports = { - name: 'Server', - webpack: { - devtool: 'source-map', - entry: './src/Server.js', - output: { - generator: 'simple', - dest: './bin' - }, - externals: { - generator: 'node-modules', - additional: ['os'] - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'ignore-styles'], - plugins: ['abort-if-errors', 'node-load-sourcemaps'], - node: { - Buffer: false, - process: false, - global: false, - __filename: true, - __dirname: true, - os: false - } + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_fs___default.a.readdirSync('node_modules').filter(function (x) { + return ['.bin'].indexOf(x) === -1; + }).reduce(prependCommonjs, nodeModules); + + if (additional) { + additional.reduce(prependCommonjs, nodeModules); + } + + if (nodeModules.lodash) { + lodashSubmodules.reduce(prependCommonjs, nodeModules); } + + return nodeModules; }; + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return loadNodeModules; }}); /***/ }, - -/***/ 24: +/* 27 */ /***/ function(module, exports, __webpack_require__) { - var _ = __webpack_require__(0); + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - module.exports = { - name: 'Test', - webpack: { - devtool: 'source-map', - output: { - path: './.test', - filename: '[name]' - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'ignore-styles'], - plugins: ['extract-css', 'abort-if-errors'], - externals: { - generator: 'node-modules', - additional: ['@r/platform/createTest'] - } - } - }; -/***/ }, -/***/ 25: + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('css', { + test: /\.css$/, + loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader') + }); + +/***/ }, +/* 28 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - var path = __webpack_require__(5); - var _ = __webpack_require__(0); + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()(['esnextreact', 'ESNextReact'], { + test: /\.es6\.js$|\.js$|\.jsx$/, + exclude: /node_modules/, + loader: 'babel', + query: { + presets: ['es2015-native-modules', 'stage-2', 'react'], + plugins: ['transform-class-properties', 'transform-react-constant-elements', 'transform-react-inline-elements', 'lodash'] + } + }); - var entryGenerators = {}; +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { - function getEntry(pathOrObject, buildName) { - // for now takes the path to the file, and the build name and makes - // the entry point object. in the future we can do things like auto traverers - // the module paths you're resolving and generate tree-shaking-less umd ready builds - // but if everything internal is using the build project its a little pointless - // return tryToLoadGenerator(entryName, entryGenerators, 'entry'); - if ((typeof pathOrObject === 'undefined' ? 'undefined' : _typeof(pathOrObject)) === 'object') { - return pathOrObject; - } + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - var entryConfig = {}; - entryConfig[buildName] = path.resolve(pathOrObject); - return entryConfig; - }; - module.exports = { - getEntry: getEntry, - entryGenerators: entryGenerators - }; + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()('ignore-styles', { + test: /\.css$|\.less$/, + loader: 'ignore-loader' + }); /***/ }, - -/***/ 26: +/* 30 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadNodeModules__ = __webpack_require__(27); - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()('json', { + test: /\.json$/, + loader: 'json-loader' + }); - var loaderName = 'node-modules'; +/***/ }, +/* 31 */ +/***/ function(module, exports, __webpack_require__) { - var getExternals = function getExternals(externals) { - if (typeof externals === 'string') { - if (externals === loaderName) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(); - } + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - throw new Error('Invalid externals loader name, did you mean: ' + loaderName + ' ?'); - } - if ((typeof externals === 'undefined' ? 'undefined' : _typeof(externals)) === 'object') { - if (externals.generator === loaderName) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0__loadNodeModules__["a"].bind()(externals.additional); - } - return externals; - } - }; - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getExternals; }}); -/***/ }, + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('less', { + test: /\.less$/, + loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader!less-loader') + }); -/***/ 27: +/***/ }, +/* 32 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(4); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CSS__ = __webpack_require__(27); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ESNextReact__ = __webpack_require__(28); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__ = __webpack_require__(29); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__JSON__ = __webpack_require__(30); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Less__ = __webpack_require__(31); - var prependCommonjs = function prependCommonjs(modules, name) { - modules[name] = 'commonjs ' + name; - return modules; - }; - var lodashSubmodules = ['array', 'collection', 'date', 'function', 'lang', 'math', 'number', 'object', 'seq', 'string', 'util', 'properties', 'methods'].map(function (name) { - return 'lodash/' + name; - }); - var loadNodeModules = function loadNodeModules(additional) { - var nodeModules = {}; - /* harmony import */__WEBPACK_IMPORTED_MODULE_0_fs___default.a.readdirSync('node_modules').filter(function (x) { - return ['.bin'].indexOf(x) === -1; - }).reduce(prependCommonjs, nodeModules); - if (additional) { - additional.reduce(prependCommonjs, nodeModules); - } - if (nodeModules.lodash) { - lodashSubmodules.reduce(prependCommonjs, nodeModules); - } - return nodeModules; - }; - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return loadNodeModules; }}); + var getLoader = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["b"].bind()('loader', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__CSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__ESNextReact__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__JSON__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__Less__["a"]]); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getLoader; }}); /***/ }, - -/***/ 272: +/* 33 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ = __webpack_require__(51); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default = __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ && __WEBPACK_IMPORTED_MODULE_1_autoprefixer__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Simple__ = __webpack_require__(6); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('autoprefixer', function (options) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default.a.bind()({ - browsers: ['last ' + (options.numVersions || 2) + ' versions'] + var simple = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__Simple__["a"].objectOrFunction; // is a function + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()(['this', 'commonjs', 'commonjs2', 'amd', 'umd'], function (options) { + return _extends({}, simple(options), { + library: options.libraryName || '[name].js', + // use options.generator to know the name we've been passed, which will be one of the above ^ + libraryTarget: options.target || options.generator || 'var' }); }); /***/ }, - -/***/ 273: +/* 34 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(5); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(274); - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Library__ = __webpack_require__(33); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(6); - var simple = /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"].objectOrFunction; // its a function; - - var resolvePath = function resolvePath(strPath) { - return /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(strPath); - }; - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('modules', function (options) { - return _extends({}, simple(options), { - modules: (options.paths || []).map(resolvePath) - }); - }); + var getOutput = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["b"].bind()('output', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Library__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"]]); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getOutput; }}); /***/ }, - -/***/ 274: +/* 35 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('simple', function (options) { - return { - extensions: options.extensions - }; + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('abort-if-errors', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["NoErrorsPlugin"](); }); /***/ }, - -/***/ 275: +/* 36 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(273); - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); + var CommonsChunkPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["optimize"].CommonsChunkPlugin; - var modules = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"].objectOrFunction; // its a function; - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('npm-and-modules', function (options) { - var result = modules(options); - return _extends({}, result, { - modules: result.modules.concat('node_modules') + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('bundle-common', function () { + return new CommonsChunkPlugin({ + name: 'vendor', + minChunks: Infinity, + filename: 'vendor.bundle.js' }); }); /***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { -/***/ 276: -/***/ function(module, exports) { + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - module.exports = require("lodash/object"); -/***/ }, -/***/ 29: + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('production-loaders', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["LoaderOptionsPlugin"]({ + minimize: true, + debug: false + }); + }); + +/***/ }, +/* 38 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('css', { - test: /\.css$/, - loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader') + /* harmony default export */ exports["a"] = new /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"]('extract-css', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a('[name].css'); }); /***/ }, - -/***/ 3: +/* 39 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + var UglifyJsPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["optimize"].UglifyJsPlugin; - var applyGenerators = function applyGenerators(loaders, generator) { - generator.names.forEach(function (name) { - loaders[name] = generator.objectOrFunction; - }); - return loaders; - }; - var generatorLoader = function generatorLoader(thingKind, generators) { - var loaders = generators.reduce(function (prev, generator) { - return applyGenerators(_extends({}, prev), generator); - }, {}); - return function (loaderName) { - return tryToLoadGenerator(loaderName, loaders, thingKind); - }; - }; - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return generatorLoader; }}); - - var tryToLoadGenerator = function tryToLoadGenerator(nameOrObject, lookupTable, thingKind) { - var parsed = parseNameOrObject(nameOrObject); - if (!parsed) { - return nameOrObject; - } - - var thing = lookupTable[parsed.name]; - if (!thing) { - throw new Error('Failed to resolve ' + nameOrObject + ' - ' + thingKind); - } - - if (typeof thing === 'function') { - return thing(parsed.options); - } - - return thing; - };/* unused harmony export tryToLoadGenerator */ - - var parseNameOrObject = function parseNameOrObject(nameOrObject) { - if (typeof nameOrObject === 'string') { - return { name: nameOrObject, options: {} }; - } - - if ((typeof nameOrObject === 'undefined' ? 'undefined' : _typeof(nameOrObject)) === 'object') { - var name = nameOrObject.generator; - if (typeof name === 'string') { - return { name: name, options: nameOrObject }; - } - } - }; - -/***/ }, - -/***/ 30: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()(['esnextreact', 'ESNextReact'], { - test: /\.es6\.js$|\.js$|\.jsx$/, - exclude: /node_modules/, - loader: 'babel', - query: { - presets: ['es2015-native-modules', 'stage-2', 'react'], - plugins: ['transform-class-properties', 'transform-react-constant-elements', 'transform-react-inline-elements', 'lodash'] - } + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('minify-and-treeshake', function () { + return new UglifyJsPlugin({ + compress: { warnings: false }, + output: { comments: false }, + sourceMap: true + }); }); /***/ }, - -/***/ 31: +/* 40 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('ignore-styles', { - test: /\.css$|\.less$/, - loader: 'ignore-loader' + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('node-executable', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["BannerPlugin"]({ + banner: '#!/usr/bin/env node', + raw: true, + entryOnly: true + }); }); /***/ }, - -/***/ 32: +/* 41 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()('json', { - test: /\.json$/, - loader: 'json-loader' + + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('node-load-sourcemaps', function () { + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["BannerPlugin"]({ + banner: 'require("source-map-support").install();', + raw: true, + entryOnly: false + }); }); /***/ }, - -/***/ 33: +/* 42 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('set-node-env', function (options) { + var nodeEnv = "production" || 'production'; + var env = "server" || 'server'; - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('less', { - test: /\.less$/, - loader: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a.extract('style-loader', 'css-loader!postcss-loader!less-loader') + return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["DefinePlugin"]({ + 'process.env': { + NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), + ENV: JSON.stringify(options.env || env) + } + }); }); /***/ }, - -/***/ 34: +/* 43 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CSS__ = __webpack_require__(29); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ESNextReact__ = __webpack_require__(30); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__ = __webpack_require__(31); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__JSON__ = __webpack_require__(32); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Less__ = __webpack_require__(33); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__ = __webpack_require__(35); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__ = __webpack_require__(36); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__ = __webpack_require__(37); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ExtractCSS__ = __webpack_require__(38); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__ = __webpack_require__(39); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NodeExecutable__ = __webpack_require__(40); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__ = __webpack_require__(41); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__ = __webpack_require__(42); @@ -843,124 +877,87 @@ - var getLoader = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('loader', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__CSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__ESNextReact__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__JSON__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__Less__["a"]]); - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getLoader; }}); -/***/ }, - -/***/ 35: -/***/ function(module, exports, __webpack_require__) { - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__ = __webpack_require__(1); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Simple__ = __webpack_require__(8); - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - - - var simple = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__Simple__["a"].objectOrFunction; // is a function - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_Generator__["a"].bind()(['this', 'commonjs', 'commonjs2', 'amd', 'umd'], function (options) { - return _extends({}, simple(options), { - library: options.libraryName || '[name].js', - // use options.generator to know the name we've been passed, which will be one of the above ^ - libraryTarget: options.target || options.generator || 'var' - }); - }); + var getPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["b"].bind()('plugin', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__ExtractCSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_6__NodeExecutable__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__["a"]]); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); /***/ }, - -/***/ 36: +/* 44 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Library__ = __webpack_require__(35); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(8); - - - - - - var getOutput = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('output', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Library__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__Simple__["a"]]); - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getOutput; }}); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ = __webpack_require__(50); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default = __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ && __WEBPACK_IMPORTED_MODULE_1_autoprefixer__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default }); -/***/ }, -/***/ 4: -/***/ function(module, exports) { - module.exports = require("fs"); + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()('autoprefixer', function (options) { + return /* harmony import */__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default.a.bind()({ + browsers: ['last ' + (options.numVersions || 2) + ' versions'] + }); + }); /***/ }, - -/***/ 44: +/* 45 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__ = __webpack_require__(53); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__ = __webpack_require__(54); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__ = __webpack_require__(55); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ExtractCSS__ = __webpack_require__(56); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__ = __webpack_require__(57); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NodeExecutable__ = __webpack_require__(58); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__ = __webpack_require__(59); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__ = __webpack_require__(60); - - + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Autoprefixer__ = __webpack_require__(44); - - - - - - - var getPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('plugin', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_4__ExtractCSS__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_6__NodeExecutable__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__["a"]]); - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); + var getPostCSS = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["b"].bind()('postcsshooks', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Autoprefixer__["a"]]); + /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPostCSS; }}); /***/ }, - -/***/ 46: +/* 46 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Autoprefixer__ = __webpack_require__(272); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(7); + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - var getPostCSS = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('postcsshooks', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Autoprefixer__["a"]]); - /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPostCSS; }}); + var modules = /* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"].objectOrFunction; // its a function; -/***/ }, + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["a"].bind()('npm-and-modules', function (options) { + var result = modules(options); + return _extends({}, result, { + modules: result.modules.concat('node_modules') + }); + }); -/***/ 48: +/***/ }, +/* 47 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__ = __webpack_require__(3); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(273); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NPMAndModules__ = __webpack_require__(275); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Simple__ = __webpack_require__(274); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(7); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NPMAndModules__ = __webpack_require__(46); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Simple__ = __webpack_require__(8); - var getResolver = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators_tryToLoad__["a"].bind()('resolver', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__NPMAndModules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__Simple__["a"]]); + var getResolver = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lib_generators__["b"].bind()('resolver', [/* harmony import */__WEBPACK_IMPORTED_MODULE_1__Modules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_2__NPMAndModules__["a"], /* harmony import */__WEBPACK_IMPORTED_MODULE_3__Simple__["a"]]); /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getResolver; }}); /***/ }, - -/***/ 49: +/* 48 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); @@ -998,58 +995,46 @@ }).filter(function (x) { return x; }).reduce(function (prev, cur) { - if (Array.isArray(curr)) { + if (Array.isArray(cur)) { return prev.concat(cur); - } else { - return prev.concat([cur]); } + + return prev.concat([cur]); }, []); }; /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getTestFiles; }}); /***/ }, - -/***/ 5: -/***/ function(module, exports) { - - module.exports = require("path"); - -/***/ }, - -/***/ 50: +/* 49 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(16); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors___default = __WEBPACK_IMPORTED_MODULE_0_colors__ && __WEBPACK_IMPORTED_MODULE_0_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_colors__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_colors___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_debug__ = __webpack_require__(17); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_debug___default = __WEBPACK_IMPORTED_MODULE_1_debug__ && __WEBPACK_IMPORTED_MODULE_1_debug__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_debug__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_debug__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_debug___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_debug___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs__ = __webpack_require__(4); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_fs___default = __WEBPACK_IMPORTED_MODULE_2_fs__ && __WEBPACK_IMPORTED_MODULE_2_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_fs__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_fs___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_object__ = __webpack_require__(276); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_object___default = __WEBPACK_IMPORTED_MODULE_3_lodash_object__ && __WEBPACK_IMPORTED_MODULE_3_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_lodash_object__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_lodash_object___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_mocha__ = __webpack_require__(18); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_mocha___default = __WEBPACK_IMPORTED_MODULE_4_mocha__ && __WEBPACK_IMPORTED_MODULE_4_mocha__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_4_mocha__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_4_mocha__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_4_mocha___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_4_mocha___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_path__ = __webpack_require__(5); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_path___default = __WEBPACK_IMPORTED_MODULE_5_path__ && __WEBPACK_IMPORTED_MODULE_5_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_5_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_5_path__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_5_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_5_path___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rimraf__ = __webpack_require__(19); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rimraf___default = __WEBPACK_IMPORTED_MODULE_6_rimraf__ && __WEBPACK_IMPORTED_MODULE_6_rimraf__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_6_rimraf__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_6_rimraf__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_6_rimraf___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_6_rimraf___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_yargs__ = __webpack_require__(6); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_yargs___default = __WEBPACK_IMPORTED_MODULE_7_yargs__ && __WEBPACK_IMPORTED_MODULE_7_yargs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_7_yargs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_7_yargs__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_7_yargs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_7_yargs___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lib_build__ = __webpack_require__(11); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lib_makeBuild__ = __webpack_require__(14); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs__ = __webpack_require__(12); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs___default = __WEBPACK_IMPORTED_MODULE_10_lib_configs__ && __WEBPACK_IMPORTED_MODULE_10_lib_configs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_10_lib_configs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_10_lib_configs__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_10_lib_configs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_10_lib_configs___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__ = __webpack_require__(13); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(5); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_colors__ = __webpack_require__(14); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_colors___default = __WEBPACK_IMPORTED_MODULE_1_colors__ && __WEBPACK_IMPORTED_MODULE_1_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_colors__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_colors___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debug__ = __webpack_require__(15); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debug___default = __WEBPACK_IMPORTED_MODULE_2_debug__ && __WEBPACK_IMPORTED_MODULE_2_debug__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_debug__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_debug__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_debug___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_debug___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_mocha__ = __webpack_require__(16); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_mocha___default = __WEBPACK_IMPORTED_MODULE_3_mocha__ && __WEBPACK_IMPORTED_MODULE_3_mocha__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_mocha__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_mocha__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_mocha___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_mocha___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_path___default = __WEBPACK_IMPORTED_MODULE_4_path__ && __WEBPACK_IMPORTED_MODULE_4_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_4_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_4_path__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_4_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_4_path___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rimraf__ = __webpack_require__(17); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rimraf___default = __WEBPACK_IMPORTED_MODULE_5_rimraf__ && __WEBPACK_IMPORTED_MODULE_5_rimraf__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_5_rimraf__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_5_rimraf__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_5_rimraf___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_5_rimraf___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_yargs__ = __webpack_require__(18); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_yargs___default = __WEBPACK_IMPORTED_MODULE_6_yargs__ && __WEBPACK_IMPORTED_MODULE_6_yargs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_6_yargs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_6_yargs__; } + /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_6_yargs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_6_yargs___default }); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_build__ = __webpack_require__(9); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lib_makeBuild__ = __webpack_require__(12); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lib_configs__ = __webpack_require__(10); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs_Testing__ = __webpack_require__(57); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__ = __webpack_require__(11); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; @@ -1066,22 +1051,28 @@ - var debug = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_debug___default.a.bind()('blueprints'); + var debug = /* harmony import */__WEBPACK_IMPORTED_MODULE_2_debug___default.a.bind()('blueprints'); + + var blue = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_colors___default.a.blue; + var white = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_colors___default.a.white; + var magenta = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_colors___default.a.magenta; + var red = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_colors___default.a.red; /* eslint-disable max-len */ - var argv = /* harmony import */__WEBPACK_IMPORTED_MODULE_7_yargs___default.a.alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; + + var argv = /* harmony import */__WEBPACK_IMPORTED_MODULE_6_yargs___default.a.alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; /* eslint-enable */ - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('[Blueprints] reading from ' + argv.blueprintsPath)); - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('[cwd] ' + process.cwd())); + console.log(blue('[Blueprints] reading from ' + argv.blueprintsPath)); + console.log(blue('[cwd] ' + process.cwd())); var loadBuildsFromPath = function loadBuildsFromPath(configPath) { try { - conslole.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..loading config ' + configPath)); + console.log(blue('..loading config ' + configPath)); var _builds = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); if (!Array.isArray(_builds)) { if (_builds.extensions === true) { - return { extensions: /* harmony import */__WEBPACK_IMPORTED_MODULE_3_lodash_object__["omit"].bind()(_builds, 'extensions') }; + return { extensions: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(_builds, 'extensions') }; } _builds = [_builds]; } @@ -1097,7 +1088,7 @@ var ext = extensions || {}; if (Object.keys(ext).length > 0) { /* eslint-disable max-len */ - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('[extensions]') + ': ' + /* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.white(JSON.stringify(extensions, null, 2))); + console.log(blue('[extensions]') + ': ' + white(JSON.stringify(extensions, null, 2))); /* eslint-enable */ } @@ -1108,7 +1099,7 @@ var makeConfig = function makeConfig(builds, extensions) { return { - builds: applyExtensions(builds, extensions).map(/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_makeBuild__["a"]) + builds: applyExtensions(builds, extensions).map(/* harmony import */__WEBPACK_IMPORTED_MODULE_8_lib_makeBuild__["a"]) }; }; @@ -1125,20 +1116,20 @@ } var loadDefaultConfigs = function loadDefaultConfigs() { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..using default configs')); + console.log(blue('..using default configs')); if (argv.runTest) { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.magenta('..Setting up tests:')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.DefaultTestingConfig]; + console.log(magenta('..Setting up tests:')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs_Testing__["a"]]; builds[0].webpack.entry = /* harmony import */__WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__["a"].bind()('./'); } else if (argv.client) { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..client')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getClientConfig(argv.production)]; + console.log(blue('..client')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["a"].bind()(argv.production)]; } else if (argv.server) { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..server')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getServerConfig(argv.production)]; + console.log(blue('..server')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["b"].bind()(argv.production)]; } else if (argv.clientAndServer) { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.blue('..both')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getClientConfig(argv.production), /* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs___default.a.getServerConfig(argv.production)]; + console.log(blue('..both')); + builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["a"].bind()(argv.production), /* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["b"].bind()(argv.production)]; } }; @@ -1150,243 +1141,193 @@ extensions.watch = true; } - /* harmony import */__WEBPACK_IMPORTED_MODULE_8_lib_build__["a"].bind()(makeConfig(builds, extensions), function (stats) { + /* harmony import */__WEBPACK_IMPORTED_MODULE_7_lib_build__["a"].bind()(makeConfig(builds, extensions), function (stats) { if (stats.errors && stats.errors.length > 0 && !argv.watch) { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.red('ERROR IN BUILD. Aborting.')); + console.log(red('ERROR IN BUILD. Aborting.')); process.exit(1); } if (argv.runTest) { - console.log(/* harmony import */__WEBPACK_IMPORTED_MODULE_0_colors___default.a.magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); + (function () { + console.log(magenta('\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************')); - var m = new /* harmony import */__WEBPACK_IMPORTED_MODULE_4_mocha___default.a(); - stats.assets.forEach(function (asset) { - var path = './.test/' + asset.name; - m.addFile(path); - }); - m.run().on('end', function () { - /* harmony import */__WEBPACK_IMPORTED_MODULE_6_rimraf___default.a.bind()('./.test/', function () {}); - }); + var mochaInstance = new /* harmony import */__WEBPACK_IMPORTED_MODULE_3_mocha___default.a(); + stats.assets.forEach(function (asset) { + mochaInstance.addFile('./.test/' + asset.name); + }); + + mochaInstance.run().on('end', function () { + /* harmony import */__WEBPACK_IMPORTED_MODULE_5_rimraf___default.a.bind()('./.test/', function () {}); + }); + })(); } }); /***/ }, - -/***/ 51: +/* 50 */ /***/ function(module, exports) { module.exports = require("autoprefixer"); /***/ }, - -/***/ 52: +/* 51 */, +/* 52 */ /***/ function(module, exports) { module.exports = require("node-notifier"); /***/ }, - -/***/ 53: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('abort-if-errors', function () { - return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["NoErrorsPlugin"](); - }); - -/***/ }, - -/***/ 54: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - var CommonsChunkPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["optimize"].CommonsChunkPlugin; - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('bundle-common', function () { - return new CommonsChunkPlugin({ - name: 'vendor', - minChunks: Infinity, - filename: 'vendor.bundle.js' - }); - }); - -/***/ }, - -/***/ 55: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('production-loaders', function () { - return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["LoaderOptionsPlugin"]({ - minimize: true, - debug: false - }); - }); - -/***/ }, - -/***/ 56: +/* 53 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(7); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - /* harmony default export */ exports["a"] = new /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"]('extract-css', function () { - return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a('[name].css'); - }); - -/***/ }, - -/***/ 57: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - var UglifyJsPlugin = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["optimize"].UglifyJsPlugin; - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('minify-and-treeshake', function () { - return new UglifyJsPlugin({ - compress: { warnings: false }, - output: { comments: false }, - sourceMap: true - }); - }); + /* harmony default export */ exports["a"] = { + name: 'Client', + webpack: { + devtool: 'source-map', + entry: './src/Client.js', + output: { + generator: 'simple', + dest: './bin' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'css', 'less'], + plugins: ['extract-css', 'abort-if-errors', { + generator: 'set-node-env', + env: 'client' + }] + } + }; /***/ }, - -/***/ 58: +/* 54 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('node-executable', function () { - return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["BannerPlugin"]({ - banner: '#!/usr/bin/env node', - raw: true, - entryOnly: true - }); - }); + /* harmony default export */ exports["a"] = { + name: 'ProductionClient', + webpack: { + devtool: 'source-map', + entry: './src/Client.js', + output: { + generator: 'simple', + dest: './bin' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'css', 'less'], + plugins: ['extract-css', { + generator: 'set-node-env', + env: 'client' + }, 'production-loaders', 'minify-and-treeshake', 'abort-if-errors'] + } + }; /***/ }, - -/***/ 59: +/* 55 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('node-load-sourcemaps', function () { - return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["BannerPlugin"]({ - banner: 'require("source-map-support").install();', - raw: true, - entryOnly: false - }); - }); - -/***/ }, - -/***/ 6: -/***/ function(module, exports) { - - module.exports = require("yargs"); + /* harmony default export */ exports["a"] = { + name: 'ProductionServer', + webpack: { + devtool: 'source-map', + entry: './src/Server.js', + output: { + generator: 'simple', + dest: './bin' + }, + externals: { + generator: 'node-modules', + additional: ['os'] + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['production-loaders', 'minify-and-treeshake', 'abort-if-errors', 'node-load-sourcemaps'], + node: { + Buffer: false, + process: false, + global: false, + __filename: true, + __dirname: true + } + } + }; /***/ }, - -/***/ 60: +/* 56 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(2); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('set-node-env', function (options) { - var nodeEnv = "production" || 'production'; - var env = "server" || 'server'; - - return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack__["DefinePlugin"]({ - 'process.env': { - NODE_ENV: JSON.stringify(options.nodeEnv || nodeEnv), - ENV: JSON.stringify(options.env || env) + /* harmony default export */ exports["a"] = { + name: 'Server', + webpack: { + devtool: 'source-map', + entry: './src/Server.js', + output: { + generator: 'simple', + dest: './bin' + }, + externals: { + generator: 'node-modules', + additional: ['os'] + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['abort-if-errors', 'node-load-sourcemaps'], + node: { + Buffer: false, + process: false, + global: false, + __filename: true, + __dirname: true, + os: false } - }); - }); - -/***/ }, - -/***/ 7: -/***/ function(module, exports) { - - module.exports = require("extract-text-webpack-plugin"); + } + }; /***/ }, - -/***/ 8: +/* 57 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(5); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } - /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__ = __webpack_require__(1); - - - - - /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators_Generator__["a"].bind()('simple', function (options) { - return { - path: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(options.dest), - filename: options.name || '[name].js' - }; - }); + /* harmony default export */ exports["a"] = { + name: 'Test', + webpack: { + devtool: 'source-map', + output: { + path: './.test', + filename: '[name]' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['extract-css', 'abort-if-errors'], + externals: { + generator: 'node-modules', + additional: ['@r/platform/createTest'] + } + } + }; /***/ } - -/******/ }); \ No newline at end of file +/******/ ]); \ No newline at end of file diff --git a/bin/webfonts.js b/bin/webfonts.js index 73e9b3d..e03f34b 100755 --- a/bin/webfonts.js +++ b/bin/webfonts.js @@ -38,42 +38,48 @@ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 3); +/******/ return __webpack_require__(__webpack_require__.s = 4); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports) { - module.exports = require("glob"); + module.exports = require("colors"); /***/ }, /* 1 */ /***/ function(module, exports) { - module.exports = require("path"); + module.exports = require("glob"); /***/ }, /* 2 */ /***/ function(module, exports) { - module.exports = require("webfonts-generator"); + module.exports = require("path"); /***/ }, /* 3 */ +/***/ function(module, exports) { + + module.exports = require("webfonts-generator"); + +/***/ }, +/* 4 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors___default = __WEBPACK_IMPORTED_MODULE_0_colors__ && __WEBPACK_IMPORTED_MODULE_0_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_colors__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_colors___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_glob__ = __webpack_require__(0); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_glob__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_glob___default = __WEBPACK_IMPORTED_MODULE_1_glob__ && __WEBPACK_IMPORTED_MODULE_1_glob__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_glob__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_glob__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_glob___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_glob___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path__ = __webpack_require__(1); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path___default = __WEBPACK_IMPORTED_MODULE_2_path__ && __WEBPACK_IMPORTED_MODULE_2_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_2_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_2_path__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_2_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_2_path___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default = __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__ && __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_webfonts_generator__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_webfonts_generator___default }); @@ -105,11 +111,5 @@ }); }); -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - module.exports = require("colors"); - /***/ } /******/ ]); \ No newline at end of file diff --git a/lib/build.js b/lib/build.js index 423de9d..bb006cd 100644 --- a/lib/build.js +++ b/lib/build.js @@ -1,8 +1,5 @@ import webpack from 'webpack'; import notifier from 'node-notifier'; -import fs from 'fs'; - -const nodeEnv = process.env.NODE_ENV || 'development'; export const build = (config, cb) => { const callback = cb || (() => {}); @@ -34,18 +31,18 @@ const exectuteBuild = (build, cb) => { const formatAsset = asset => { const name = asset.name; - const size = asset.size; - let sizeStr = size + " B"; + const size = asset.size; + let sizeStr = `${size} B`; - if (size > 1000) sizeStr = Math.ceil(size / 1000) + " kB"; - if (size > 1000000) sizeStr = Math.ceil(size / 1000000) + " MB"; + if (size > 1000) { sizeStr = `${Math.ceil(size / 1000)} kB`; } + if (size > 1000000) { sizeStr = `${Math.ceil(size / 1000000)} MB`; } return `${name} [${sizeStr}]`; }; const outputBuild = type => (err, stats) => { if (err) { - console.log(`error in build`, err); + console.log('error in build', err); return; } @@ -56,7 +53,7 @@ const outputBuild = type => (err, stats) => { })); const buildStats = stats.toJson(); - const { errors } = buildStats + const { errors } = buildStats; if (errors && errors.length) { notifier.notify({ diff --git a/lib/configs/DefaultClientConfig.js b/lib/configs/Client.js similarity index 96% rename from lib/configs/DefaultClientConfig.js rename to lib/configs/Client.js index 4c8cadf..4fd69b8 100644 --- a/lib/configs/DefaultClientConfig.js +++ b/lib/configs/Client.js @@ -1,4 +1,4 @@ -module.exports = { +export default { name: 'Client', webpack: { devtool: 'source-map', diff --git a/lib/configs/DefaultProductionClientConfig.js b/lib/configs/ProductionClient.js similarity index 87% rename from lib/configs/DefaultProductionClientConfig.js rename to lib/configs/ProductionClient.js index 82f3d38..3165fc3 100644 --- a/lib/configs/DefaultProductionClientConfig.js +++ b/lib/configs/ProductionClient.js @@ -1,4 +1,4 @@ -module.exports = { +export default { name: 'ProductionClient', webpack: { devtool: 'source-map', @@ -10,7 +10,7 @@ module.exports = { resolve: { generator: 'npm-and-modules', paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + extensions: ['', '.js', '.jsx', '.es6.js', '.json'], }, loaders: [ 'esnextreact', diff --git a/lib/configs/DefaultProductionServerConfig.js b/lib/configs/ProductionServer.js similarity index 89% rename from lib/configs/DefaultProductionServerConfig.js rename to lib/configs/ProductionServer.js index 84664be..2ec7d05 100644 --- a/lib/configs/DefaultProductionServerConfig.js +++ b/lib/configs/ProductionServer.js @@ -1,4 +1,4 @@ -module.exports = { +export default { name: 'ProductionServer', webpack: { devtool: 'source-map', @@ -14,7 +14,7 @@ module.exports = { resolve: { generator: 'npm-and-modules', paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + extensions: ['', '.js', '.jsx', '.es6.js', '.json'], }, loaders: [ 'esnextreact', diff --git a/lib/configs/DefaultServerConfig.js b/lib/configs/Server.js similarity index 89% rename from lib/configs/DefaultServerConfig.js rename to lib/configs/Server.js index 23af7b6..91cc451 100644 --- a/lib/configs/DefaultServerConfig.js +++ b/lib/configs/Server.js @@ -1,4 +1,4 @@ -module.exports = { +export default { name: 'Server', webpack: { devtool: 'source-map', @@ -14,7 +14,7 @@ module.exports = { resolve: { generator: 'npm-and-modules', paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + extensions: ['', '.js', '.jsx', '.es6.js', '.json'], }, loaders: [ 'esnextreact', diff --git a/lib/configs/DefaultTestingConfig.js b/lib/configs/Testing.js similarity index 90% rename from lib/configs/DefaultTestingConfig.js rename to lib/configs/Testing.js index 2d1f9cd..9728385 100644 --- a/lib/configs/DefaultTestingConfig.js +++ b/lib/configs/Testing.js @@ -1,6 +1,4 @@ -var _ = require('lodash'); - -module.exports = { +export default { name: 'Test', webpack: { devtool: 'source-map', @@ -26,5 +24,5 @@ module.exports = { generator: 'node-modules', additional: ['@r/platform/createTest'], }, - } -} + }, +}; diff --git a/lib/configs/index.js b/lib/configs/index.js index a01351b..1b34ce1 100644 --- a/lib/configs/index.js +++ b/lib/configs/index.js @@ -1,27 +1,14 @@ -var DefaultClientConfig = require('./DefaultClientConfig'); -var DefaultProductionClientConfig = require('./DefaultProductionClientConfig'); -var DefaultServerConfig = require('./DefaultServerConfig'); -var DefaultProductionServerConfig = require('./DefaultProductionServerConfig'); -var DefaultTestingConfig = require('./DefaultTestingConfig'); +import ClientConfig from './Client'; +import ProudctionClientConfig from './ProductionClient'; +import ServerConfig from './Server'; +import ProductionServerConfig from './ProductionServer'; -function getBuild(production, debugConfig, productionConfig) { +const getBuild = (production, debugConfig, productionConfig) => { return production ? productionConfig : debugConfig; -} - -function getClientConfig(production) { - return getBuild(production, DefaultClientConfig, DefaultProductionClientConfig); -} +}; -function getServerConfig(production) { - return getBuild(production, DefaultServerConfig, DefaultProductionServerConfig); -} +export const getClientConfig = production => ( + getBuild(production, ClientConfig, ProudctionClientConfig)); -module.exports = { - DefaultClientConfig, - DefaultProductionClientConfig, - DefaultServerConfig, - DefaultProductionServerConfig, - DefaultTestingConfig, - getClientConfig, - getServerConfig, -}; +export const getServerConfig = production => ( + getBuild(production, ServerConfig, ProductionServerConfig)); diff --git a/lib/generators/Generator.js b/lib/generators/Generator.js deleted file mode 100644 index 5c077ce..0000000 --- a/lib/generators/Generator.js +++ /dev/null @@ -1,11 +0,0 @@ -export const Generator = (nameOrNames, objectOrFunction) => { - let names = nameOrNames; - if (!Array.isArray(names)) { - names = [ names ]; - } - - return { - names, - objectOrFunction, - }; -}; diff --git a/lib/generators/entry/index.js b/lib/generators/entry/index.js index 29bd58f..3c997e7 100644 --- a/lib/generators/entry/index.js +++ b/lib/generators/entry/index.js @@ -1,11 +1,6 @@ -var path = require('path'); -var _ = require('lodash'); -import { tryToLoadGenerator } from 'lib/generators/tryToLoad'; +import path from 'path'; -var entryGenerators = { -}; - -function getEntry(pathOrObject, buildName) { +export const getEntry = (pathOrObject, buildName) => { // for now takes the path to the file, and the build name and makes // the entry point object. in the future we can do things like auto traverers // the module paths you're resolving and generate tree-shaking-less umd ready builds @@ -15,12 +10,7 @@ function getEntry(pathOrObject, buildName) { return pathOrObject; } - var entryConfig = {}; + const entryConfig = {}; entryConfig[buildName] = path.resolve(pathOrObject); return entryConfig; }; - -module.exports = { - getEntry, - entryGenerators, -}; diff --git a/lib/generators/index.js b/lib/generators/index.js index 6088c75..436155a 100644 --- a/lib/generators/index.js +++ b/lib/generators/index.js @@ -1,15 +1,55 @@ -var getLoader = require('./loaders').getLoader; -var getPlugin = require('./plugins').getPlugin; -var getOutput = require('./output').getOutput; -var getResolver = require('./resolver').getResolver; -var getEntry = require('./entry').getEntry; -var getPostCSS = require('./postcss').getPostCSS; - -module.exports = { - getLoader, - getPlugin, - getOutput, - getResolver, - getEntry, - getPostCSS, +export const Generator = (nameOrNames, objectOrFunction) => { + let names = nameOrNames; + if (!Array.isArray(names)) { + names = [ names ]; + } + + return { + names, + objectOrFunction, + }; +}; + +const applyGenerators = (loaders, generator) => { + generator.names.forEach(name => { + loaders[name] = generator.objectOrFunction; + }); + + return loaders; +}; + +export const generatorLoader = (thingKind, generators) => { + const loaders = generators.reduce((prev, generator) => applyGenerators({...prev}, generator), {}); + return (loaderName) => tryToLoadGenerator(loaderName, loaders, thingKind); +}; + +export const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => { + const parsed = parseNameOrObject(nameOrObject); + if (!parsed) { + return nameOrObject; + } + + const thing = lookupTable[parsed.name]; + if (!thing) { + throw new Error(`Failed to resolve ${nameOrObject} - ${thingKind}`); + } + + if (typeof thing === 'function') { + return thing(parsed.options); + } + + return thing; +}; + +const parseNameOrObject = (nameOrObject) => { + if (typeof nameOrObject === 'string') { + return { name: nameOrObject, options: {} }; + } + + if (typeof nameOrObject === 'object') { + const name = nameOrObject.generator; + if (typeof name === 'string') { + return { name, options: nameOrObject }; + } + } }; diff --git a/lib/generators/loaders/CSS.js b/lib/generators/loaders/CSS.js index e27c0b9..28d8a3f 100644 --- a/lib/generators/loaders/CSS.js +++ b/lib/generators/loaders/CSS.js @@ -1,6 +1,6 @@ import ExtractTextPlugin from 'extract-text-webpack-plugin'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('css', { test: /\.css$/, diff --git a/lib/generators/loaders/ESNextReact.js b/lib/generators/loaders/ESNextReact.js index 59dcf67..2b3afb4 100644 --- a/lib/generators/loaders/ESNextReact.js +++ b/lib/generators/loaders/ESNextReact.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator(['esnextreact', 'ESNextReact'], { test: /\.es6\.js$|\.js$|\.jsx$/, diff --git a/lib/generators/loaders/IgnoreStyles.js b/lib/generators/loaders/IgnoreStyles.js index 1a6508f..12616ad 100644 --- a/lib/generators/loaders/IgnoreStyles.js +++ b/lib/generators/loaders/IgnoreStyles.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('ignore-styles', { test: /\.css$|\.less$/, diff --git a/lib/generators/loaders/JSON.js b/lib/generators/loaders/JSON.js index a903865..245727e 100644 --- a/lib/generators/loaders/JSON.js +++ b/lib/generators/loaders/JSON.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('json', { test: /\.json$/, diff --git a/lib/generators/loaders/Less.js b/lib/generators/loaders/Less.js index 7987c03..4f07140 100644 --- a/lib/generators/loaders/Less.js +++ b/lib/generators/loaders/Less.js @@ -1,6 +1,6 @@ import ExtractTextPlugin from 'extract-text-webpack-plugin'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('less', { test: /\.less$/, diff --git a/lib/generators/loaders/index.js b/lib/generators/loaders/index.js index 42854f2..394630c 100644 --- a/lib/generators/loaders/index.js +++ b/lib/generators/loaders/index.js @@ -1,4 +1,4 @@ -import { generatorLoader } from 'lib/generators/tryToLoad'; +import { generatorLoader } from 'lib/generators'; import CSSLoader from './CSS'; import ESNextReactLoader from './ESNextReact'; diff --git a/lib/generators/output/Library.js b/lib/generators/output/Library.js index 8d3343d..533256a 100644 --- a/lib/generators/output/Library.js +++ b/lib/generators/output/Library.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; import SimpleOutput from './Simple'; const simple = SimpleOutput.objectOrFunction; // is a function diff --git a/lib/generators/output/Simple.js b/lib/generators/output/Simple.js index 5b34d22..f6fa8b8 100644 --- a/lib/generators/output/Simple.js +++ b/lib/generators/output/Simple.js @@ -1,6 +1,6 @@ import path from 'path'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('simple', options => ({ path: path.resolve(options.dest), diff --git a/lib/generators/output/index.js b/lib/generators/output/index.js index 74bc538..1be9b9e 100644 --- a/lib/generators/output/index.js +++ b/lib/generators/output/index.js @@ -1,4 +1,4 @@ -import { generatorLoader } from 'lib/generators/tryToLoad'; +import { generatorLoader } from 'lib/generators'; import LibraryOutput from './Library'; import SimpleOutput from './Simple'; diff --git a/lib/generators/plugins/AbortIfErrors.js b/lib/generators/plugins/AbortIfErrors.js index 5a4fb01..76dc717 100644 --- a/lib/generators/plugins/AbortIfErrors.js +++ b/lib/generators/plugins/AbortIfErrors.js @@ -1,4 +1,4 @@ import { NoErrorsPlugin } from 'webpack'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('abort-if-errors', () => new NoErrorsPlugin()); diff --git a/lib/generators/plugins/BundleCommonChunks.js b/lib/generators/plugins/BundleCommonChunks.js index 8b333f9..517625e 100644 --- a/lib/generators/plugins/BundleCommonChunks.js +++ b/lib/generators/plugins/BundleCommonChunks.js @@ -1,9 +1,9 @@ import { optimize } from 'webpack'; const { CommonsChunkPlugin } = optimize; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('bundle-common', () => (new CommonsChunkPlugin({ - name: 'vendor', - minChunks: Infinity, - filename: 'vendor.bundle.js' - }))); + name: 'vendor', + minChunks: Infinity, + filename: 'vendor.bundle.js', +}))); diff --git a/lib/generators/plugins/EnableProductionLoaders.js b/lib/generators/plugins/EnableProductionLoaders.js index 0d90d7a..37a9d90 100644 --- a/lib/generators/plugins/EnableProductionLoaders.js +++ b/lib/generators/plugins/EnableProductionLoaders.js @@ -1,7 +1,7 @@ import { LoaderOptionsPlugin } from 'webpack'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('production-loaders', () => (new LoaderOptionsPlugin({ minimize: true, - debug: false + debug: false, }))); diff --git a/lib/generators/plugins/ExtractCSS.js b/lib/generators/plugins/ExtractCSS.js index ee36385..b0d776d 100644 --- a/lib/generators/plugins/ExtractCSS.js +++ b/lib/generators/plugins/ExtractCSS.js @@ -1,4 +1,4 @@ import ExtractTextPlugin from 'extract-text-webpack-plugin'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default new Generator('extract-css', () => (new ExtractTextPlugin('[name].css'))); diff --git a/lib/generators/plugins/MinifyAndTreeShake.js b/lib/generators/plugins/MinifyAndTreeShake.js index b54523f..d77449c 100644 --- a/lib/generators/plugins/MinifyAndTreeShake.js +++ b/lib/generators/plugins/MinifyAndTreeShake.js @@ -1,10 +1,9 @@ import { optimize } from 'webpack'; const { UglifyJsPlugin } = optimize; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; -export default Generator('minify-and-treeshake', () => { - return new UglifyJsPlugin({ +export default Generator('minify-and-treeshake', () => (new UglifyJsPlugin({ compress: { warnings: false }, output: { comments: false }, sourceMap: true, -});}); +}))); diff --git a/lib/generators/plugins/NodeExecutable.js b/lib/generators/plugins/NodeExecutable.js index a3c1c90..5d4982a 100644 --- a/lib/generators/plugins/NodeExecutable.js +++ b/lib/generators/plugins/NodeExecutable.js @@ -1,5 +1,5 @@ import { BannerPlugin } from 'webpack'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('node-executable', () => (new BannerPlugin({ banner: '#!/usr/bin/env node', diff --git a/lib/generators/plugins/NodeLoadSourceMaps.js b/lib/generators/plugins/NodeLoadSourceMaps.js index 7040843..e406b4a 100644 --- a/lib/generators/plugins/NodeLoadSourceMaps.js +++ b/lib/generators/plugins/NodeLoadSourceMaps.js @@ -1,5 +1,5 @@ import { BannerPlugin } from 'webpack'; -import { Generator }from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('node-load-sourcemaps', () => (new BannerPlugin({ banner: 'require("source-map-support").install();', diff --git a/lib/generators/plugins/SetNodeEnvironment.js b/lib/generators/plugins/SetNodeEnvironment.js index 6869e1e..2710d29 100644 --- a/lib/generators/plugins/SetNodeEnvironment.js +++ b/lib/generators/plugins/SetNodeEnvironment.js @@ -1,5 +1,5 @@ import { DefinePlugin } from 'webpack'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('set-node-env', options => { const nodeEnv = process.env.NODE_ENV || 'production'; diff --git a/lib/generators/plugins/index.js b/lib/generators/plugins/index.js index 8cce27d..6c92a37 100644 --- a/lib/generators/plugins/index.js +++ b/lib/generators/plugins/index.js @@ -1,4 +1,4 @@ -import { generatorLoader } from 'lib/generators/tryToLoad'; +import { generatorLoader } from 'lib/generators'; import AbortIfErrorsPlugin from './AbortIfErrors'; import BundleCommonChunksPlugin from './BundleCommonChunks'; diff --git a/lib/generators/postcss/Autoprefixer.js b/lib/generators/postcss/Autoprefixer.js index 1fca6c4..ae11012 100644 --- a/lib/generators/postcss/Autoprefixer.js +++ b/lib/generators/postcss/Autoprefixer.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; import autoprefixer from 'autoprefixer'; export default Generator('autoprefixer', options => (autoprefixer({ diff --git a/lib/generators/postcss/index.js b/lib/generators/postcss/index.js index 393cf5b..f7f85b6 100644 --- a/lib/generators/postcss/index.js +++ b/lib/generators/postcss/index.js @@ -1,4 +1,4 @@ -import { generatorLoader } from 'lib/generators/tryToLoad'; +import { generatorLoader } from 'lib/generators'; import Autoprefixer from './Autoprefixer'; export const getPostCSS = generatorLoader('postcsshooks', [ diff --git a/lib/generators/resolver/Modules.js b/lib/generators/resolver/Modules.js index 0877a3b..1e82218 100644 --- a/lib/generators/resolver/Modules.js +++ b/lib/generators/resolver/Modules.js @@ -1,5 +1,5 @@ import path from 'path'; -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; import SimpleResolver from './Simple'; const simple = SimpleResolver.objectOrFunction; // its a function; diff --git a/lib/generators/resolver/NPMAndModules.js b/lib/generators/resolver/NPMAndModules.js index 7bc7569..f22acc1 100644 --- a/lib/generators/resolver/NPMAndModules.js +++ b/lib/generators/resolver/NPMAndModules.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; import ModulesResolver from './Modules'; const modules = ModulesResolver.objectOrFunction; // its a function; @@ -7,5 +7,5 @@ export default Generator('npm-and-modules', options => { return { ...result, modules: result.modules.concat('node_modules'), - } + }; }); diff --git a/lib/generators/resolver/Simple.js b/lib/generators/resolver/Simple.js index 2cc1707..aa1e105 100644 --- a/lib/generators/resolver/Simple.js +++ b/lib/generators/resolver/Simple.js @@ -1,4 +1,4 @@ -import { Generator } from 'lib/generators/Generator'; +import { Generator } from 'lib/generators'; export default Generator('simple', options => ({ extensions: options.extensions, diff --git a/lib/generators/resolver/index.js b/lib/generators/resolver/index.js index cc51ce7..637aada 100644 --- a/lib/generators/resolver/index.js +++ b/lib/generators/resolver/index.js @@ -1,4 +1,4 @@ -import { generatorLoader } from 'lib/generators/tryToLoad'; +import { generatorLoader } from 'lib/generators'; import ModulesResolver from './Modules'; import NPMAndModulesResolver from './NPMAndModules'; diff --git a/lib/generators/tryToLoad.js b/lib/generators/tryToLoad.js deleted file mode 100644 index 6a53139..0000000 --- a/lib/generators/tryToLoad.js +++ /dev/null @@ -1,43 +0,0 @@ -const applyGenerators = (loaders, generator) => { - generator.names.forEach(name => { - loaders[name] = generator.objectOrFunction; - }); - - return loaders; -}; - -export const generatorLoader = (thingKind, generators) => { - const loaders = generators.reduce((prev, generator) => applyGenerators({...prev}, generator), {}); - return (loaderName) => tryToLoadGenerator(loaderName, loaders, thingKind); -}; - -export const tryToLoadGenerator = (nameOrObject, lookupTable, thingKind) => { - const parsed = parseNameOrObject(nameOrObject); - if (!parsed) { - return nameOrObject; - } - - const thing = lookupTable[parsed.name]; - if (!thing) { - throw new Error(`Failed to resolve ${nameOrObject} - ${thingKind}`); - } - - if (typeof thing === 'function') { - return thing(parsed.options); - } - - return thing; -}; - -const parseNameOrObject = (nameOrObject) => { - if (typeof nameOrObject === 'string') { - return { name: nameOrObject, options: {} }; - } - - if (typeof nameOrObject === 'object') { - const name = nameOrObject.generator; - if (typeof name === 'string') { - return { name, options: nameOrObject }; - } - } -}; diff --git a/lib/getTestFiles.js b/lib/getTestFiles.js index 052d8c7..45a6fa9 100644 --- a/lib/getTestFiles.js +++ b/lib/getTestFiles.js @@ -20,17 +20,16 @@ export const getTestFiles = (dir, ext) => { if (stats.isDirectory()) { return getTestFiles(`${path}/${ext}`); } if (file.indexOf(ext) > -1) { return { file, path }; } return null; - } - catch (e) { + } catch (e) { return null; } }) .filter(x => x) .reduce((prev, cur) => { - if (Array.isArray(curr)) { + if (Array.isArray(cur)) { return prev.concat(cur); - } else { - return prev.concat([cur]); } + + return prev.concat([cur]); }, []); }; diff --git a/lib/getWebpackEntryForTest.js b/lib/getWebpackEntryForTest.js index 93867c9..7da1033 100644 --- a/lib/getWebpackEntryForTest.js +++ b/lib/getWebpackEntryForTest.js @@ -1,11 +1,15 @@ +import colors from 'colors'; import { getTestFiles } from './getTestFiles'; +const { magenta } = colors; + export const getWebpackEntryForTest = dir => { - console.log(' Searching for tests in', process.cwd()); + console.log(magenta(`Searching for tests in ${process.cwd()}`)); + const files = getTestFiles(dir, '.test.'); - console.log(' Found ' + files.length + ' test' + (files.length > 1 ? 's' : '')); + console.log(magenta(`Found ${files.length} test${files.length ? 's' : ''}`)); - return files.reduce((prev, current) => { + return files.reduce((prev, cur) => { const moduleName = `${cur.path.split('.test')[0].split('./')[1]}.compiledtest`; prev[moduleName] = cur.path; return prev; diff --git a/lib/makeBuild.js b/lib/makeBuild.js index bca182d..4068969 100644 --- a/lib/makeBuild.js +++ b/lib/makeBuild.js @@ -12,13 +12,13 @@ export const makeBuild = shortBuild => (buildObject( shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name) -)) +)); const buildObject = (buildName, watch, webpackConfig) => ({ watch, buildName, webpackConfig, -}) +}); const mapNullable = (arrayOrNull, fn) => (arrayOrNull || []).map(fn); @@ -39,4 +39,4 @@ const parseWebpackConfig = (shortHandConfig, buildName) => { ...webpackConfig, ...omit(shortHandConfig, Object.keys(webpackConfig).concat('loaders')), }; -} +}; diff --git a/src/blueprints.js b/src/blueprints.js index 6da283f..6733a0c 100755 --- a/src/blueprints.js +++ b/src/blueprints.js @@ -1,7 +1,6 @@ -import colors from 'colors'; -import debugModule from 'debug' -import fs from 'fs'; import { omit } from 'lodash/object'; +import colors from 'colors'; +import debugModule from 'debug'; import Mocha from 'mocha'; import path from 'path'; import rimraf from 'rimraf'; @@ -9,11 +8,14 @@ import yargs from 'yargs'; import { build } from 'lib/build'; import { makeBuild } from 'lib/makeBuild'; -import configs from 'lib/configs'; +import { getClientConfig, getServerConfig } from 'lib/configs'; +import TestingConfig from 'lib/configs/Testing'; import { getWebpackEntryForTest } from 'lib/getWebpackEntryForTest'; const debug = debugModule('blueprints'); +const { blue, white, magenta, red } = colors; + /* eslint-disable max-len */ const argv = yargs .alias('b', 'blueprintsPath') @@ -43,12 +45,12 @@ const argv = yargs .argv; /* eslint-enable */ -console.log(colors.blue(`[Blueprints] reading from ${argv.blueprintsPath}`)); -console.log(colors.blue(`[cwd] ${process.cwd()}`)); +console.log(blue(`[Blueprints] reading from ${argv.blueprintsPath}`)); +console.log(blue(`[cwd] ${process.cwd()}`)); const loadBuildsFromPath = configPath => { try { - conslole.log(colors.blue(`..loading config ${configPath}`)); + console.log(blue(`..loading config ${configPath}`)); let builds = require(path.resolve(configPath)); if (!Array.isArray(builds)) { if (builds.extensions === true) { @@ -57,7 +59,7 @@ const loadBuildsFromPath = configPath => { builds = [builds]; } - return { builds } + return { builds }; } catch (e) { debug(e); return {}; @@ -68,7 +70,7 @@ const applyExtensions = (builds, extensions) => { const ext = extensions || {}; if (Object.keys(ext).length > 0) { /* eslint-disable max-len */ - console.log(`${colors.blue('[extensions]')}: ${colors.white(JSON.stringify(extensions, null, 2))}`); + console.log(`${blue('[extensions]')}: ${white(JSON.stringify(extensions, null, 2))}`); /* eslint-enable */ } @@ -76,8 +78,8 @@ const applyExtensions = (builds, extensions) => { }; const makeConfig = (builds, extensions) => ({ - builds: applyExtensions(builds, extensions).map(makeBuild) -}) + builds: applyExtensions(builds, extensions).map(makeBuild), +}); let builds = []; let extensions = {}; @@ -92,25 +94,25 @@ if (argv.blueprintsPath && !argv.ignoreBlueprints) { } const loadDefaultConfigs = () => { - console.log(colors.blue('..using default configs')); + console.log(blue('..using default configs')); if (argv.runTest) { - console.log(colors.magenta('..Setting up tests:')); - builds = [ configs.DefaultTestingConfig ]; + console.log(magenta('..Setting up tests:')); + builds = [ TestingConfig ]; builds[0].webpack.entry = getWebpackEntryForTest('./'); } else if (argv.client) { - console.log(colors.blue('..client')); - builds = [ configs.getClientConfig(argv.production) ]; + console.log(blue('..client')); + builds = [ getClientConfig(argv.production) ]; } else if (argv.server) { - console.log(colors.blue('..server')); - builds = [ configs.getServerConfig(argv.production) ]; + console.log(blue('..server')); + builds = [ getServerConfig(argv.production) ]; } else if (argv.clientAndServer) { - console.log(colors.blue('..both')); + console.log(blue('..both')); builds = [ - configs.getClientConfig(argv.production), - configs.getServerConfig(argv.production), + getClientConfig(argv.production), + getServerConfig(argv.production), ]; } -} +}; if (!builds.length) { loadDefaultConfigs(); @@ -122,7 +124,7 @@ if (argv.watch) { build(makeConfig(builds, extensions), stats => { if (stats.errors && stats.errors.length > 0 && !argv.watch) { - console.log(colors.red( + console.log(red( 'ERROR IN BUILD. Aborting.' )); @@ -130,18 +132,18 @@ build(makeConfig(builds, extensions), stats => { } if (argv.runTest) { - console.log(colors.magenta( + console.log(magenta( '\n ******************************' + '\n * RUNNING TESTS *' + '\n ******************************' )); - var m = new Mocha(); - stats.assets.forEach(function(asset) { - var path = './.test/' + asset.name; - m.addFile(path); + const mochaInstance = new Mocha(); + stats.assets.forEach(asset => { + mochaInstance.addFile(`./.test/${asset.name}`); }); - m.run() + + mochaInstance.run() .on('end', function() { rimraf('./.test/', function() {}); }); diff --git a/src/webfonts.js b/src/webfonts.js index 6b7f47a..e4efe48 100755 --- a/src/webfonts.js +++ b/src/webfonts.js @@ -15,7 +15,7 @@ glob(SRC, (error, files) => { } webfontsGenerator({ - files: files, + files, dest: path.resolve('./assets/fonts'), fontName: 'rfont', css: true, @@ -24,5 +24,5 @@ glob(SRC, (error, files) => { html: true, types: ['svg', 'ttf', 'woff', 'eot'], normalize: true, - }) + }); }); From e1e09eae32827221ff5bad23d3eabd3679845c54 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 3 Jun 2016 10:50:32 -0700 Subject: [PATCH 11/14] Provide a dynamic require hook --- bin/1.js | 18 ++ bin/blueprints.js | 511 +++++++++++++++++++++---------------------- blueprints.config.js | 40 +++- src/blueprints.js | 14 +- 4 files changed, 316 insertions(+), 267 deletions(-) create mode 100644 bin/1.js diff --git a/bin/1.js b/bin/1.js new file mode 100644 index 0000000..a8c896a --- /dev/null +++ b/bin/1.js @@ -0,0 +1,18 @@ +exports.ids = [1]; +exports.modules = { + +/***/ 49: +/***/ function(module, exports) { + + function webpackEmptyContext(req) { + throw new Error("Cannot find module '" + req + "'."); + } + webpackEmptyContext.keys = function() { return []; }; + webpackEmptyContext.resolve = webpackEmptyContext; + module.exports = webpackEmptyContext; + webpackEmptyContext.id = 49; + + +/***/ } + +};; \ No newline at end of file diff --git a/bin/blueprints.js b/bin/blueprints.js index 7e26752..d1af279 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -1,4 +1,5 @@ #!/usr/bin/env node +var SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE = require; /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -38,7 +39,7 @@ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 49); +/******/ return __webpack_require__(__webpack_require__.s = 48); /******/ }) /************************************************************************/ /******/ ([ @@ -122,19 +123,19 @@ /* 2 */ /***/ function(module, exports) { - module.exports = require("fs"); + module.exports = require("path"); /***/ }, /* 3 */ /***/ function(module, exports) { - module.exports = require("path"); + module.exports = require("extract-text-webpack-plugin"); /***/ }, /* 4 */ /***/ function(module, exports) { - module.exports = require("extract-text-webpack-plugin"); + module.exports = require("colors"); /***/ }, /* 5 */ @@ -147,7 +148,7 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); @@ -167,7 +168,7 @@ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); @@ -205,13 +206,19 @@ /***/ }, /* 9 */ +/***/ function(module, exports) { + + module.exports = require("fs"); + +/***/ }, +/* 10 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_webpack___default = __WEBPACK_IMPORTED_MODULE_0_webpack__ && __WEBPACK_IMPORTED_MODULE_0_webpack__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_webpack__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_webpack___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_webpack___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier__ = __webpack_require__(52); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier__ = __webpack_require__(50); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_notifier___default = __WEBPACK_IMPORTED_MODULE_1_node_notifier__ && __WEBPACK_IMPORTED_MODULE_1_node_notifier__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_node_notifier__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_node_notifier__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_node_notifier___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_node_notifier___default }); @@ -296,14 +303,41 @@ }; /***/ }, -/* 10 */ +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony default export */ exports["a"] = { + name: 'Test', + webpack: { + devtool: 'source-map', + output: { + path: './.test', + filename: '[name]' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['extract-css', 'abort-if-errors'], + externals: { + generator: 'node-modules', + additional: ['@r/platform/createTest'] + } + } + }; + +/***/ }, +/* 12 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Client__ = __webpack_require__(53); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ProductionClient__ = __webpack_require__(54); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Server__ = __webpack_require__(56); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ProductionServer__ = __webpack_require__(55); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Client__ = __webpack_require__(19); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ProductionClient__ = __webpack_require__(20); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Server__ = __webpack_require__(22); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ProductionServer__ = __webpack_require__(21); @@ -324,14 +358,14 @@ /* harmony export */ Object.defineProperty(exports, "b", {configurable: false, enumerable: true, get: function() { return getServerConfig; }}); /***/ }, -/* 11 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(14); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_colors___default = __WEBPACK_IMPORTED_MODULE_0_colors__ && __WEBPACK_IMPORTED_MODULE_0_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_colors__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_colors___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getTestFiles__ = __webpack_require__(48); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getTestFiles__ = __webpack_require__(47); @@ -353,20 +387,20 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getWebpackEntryForTest; }}); /***/ }, -/* 12 */ +/* 14 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__ = __webpack_require__(32); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_generators_plugins__ = __webpack_require__(43); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lib_generators_output__ = __webpack_require__(34); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lib_generators_resolver__ = __webpack_require__(47); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ = __webpack_require__(24); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lib_generators_postcss__ = __webpack_require__(45); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_generators_externals__ = __webpack_require__(25); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators_loaders__ = __webpack_require__(31); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lib_generators_plugins__ = __webpack_require__(42); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lib_generators_output__ = __webpack_require__(33); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lib_generators_resolver__ = __webpack_require__(46); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lib_generators_entry__ = __webpack_require__(23); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lib_generators_postcss__ = __webpack_require__(44); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_generators_externals__ = __webpack_require__(24); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; @@ -412,25 +446,6 @@ return _extends({}, webpackConfig, /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(shortHandConfig, Object.keys(webpackConfig).concat('loaders'))); }; -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - function webpackEmptyContext(req) { - throw new Error("Cannot find module '" + req + "'."); - } - webpackEmptyContext.keys = function() { return []; }; - webpackEmptyContext.resolve = webpackEmptyContext; - module.exports = webpackEmptyContext; - webpackEmptyContext.id = 13; - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = require("colors"); - /***/ }, /* 15 */ /***/ function(module, exports) { @@ -456,16 +471,136 @@ module.exports = require("yargs"); /***/ }, -/* 19 */, -/* 20 */, -/* 21 */, -/* 22 */, -/* 23 */, -/* 24 */ +/* 19 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony default export */ exports["a"] = { + name: 'Client', + webpack: { + devtool: 'source-map', + entry: './src/Client.js', + output: { + generator: 'simple', + dest: './bin' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'css', 'less'], + plugins: ['extract-css', 'abort-if-errors', { + generator: 'set-node-env', + env: 'client' + }] + } + }; + +/***/ }, +/* 20 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(3); + /* harmony default export */ exports["a"] = { + name: 'ProductionClient', + webpack: { + devtool: 'source-map', + entry: './src/Client.js', + output: { + generator: 'simple', + dest: './bin' + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'css', 'less'], + plugins: ['extract-css', { + generator: 'set-node-env', + env: 'client' + }, 'production-loaders', 'minify-and-treeshake', 'abort-if-errors'] + } + }; + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony default export */ exports["a"] = { + name: 'ProductionServer', + webpack: { + devtool: 'source-map', + entry: './src/Server.js', + output: { + generator: 'simple', + dest: './bin' + }, + externals: { + generator: 'node-modules', + additional: ['os'] + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['production-loaders', 'minify-and-treeshake', 'abort-if-errors', 'node-load-sourcemaps'], + node: { + Buffer: false, + process: false, + global: false, + __filename: true, + __dirname: true + } + } + }; + +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony default export */ exports["a"] = { + name: 'Server', + webpack: { + devtool: 'source-map', + entry: './src/Server.js', + output: { + generator: 'simple', + dest: './bin' + }, + externals: { + generator: 'node-modules', + additional: ['os'] + }, + resolve: { + generator: 'npm-and-modules', + paths: ['src', 'lib'], + extensions: ['', '.js', '.jsx', '.es6.js', '.json'] + }, + loaders: ['esnextreact', 'json', 'ignore-styles'], + plugins: ['abort-if-errors', 'node-load-sourcemaps'], + node: { + Buffer: false, + process: false, + global: false, + __filename: true, + __dirname: true, + os: false + } + } + }; + +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __WEBPACK_IMPORTED_MODULE_0_path__ && __WEBPACK_IMPORTED_MODULE_0_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_path__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_path___default }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; @@ -489,11 +624,11 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getEntry; }}); /***/ }, -/* 25 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadNodeModules__ = __webpack_require__(26); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadNodeModules__ = __webpack_require__(25); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; @@ -520,11 +655,11 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getExternals; }}); /***/ }, -/* 26 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); @@ -558,11 +693,11 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return loadNodeModules; }}); /***/ }, -/* 27 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); @@ -576,7 +711,7 @@ }); /***/ }, -/* 28 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -594,7 +729,7 @@ }); /***/ }, -/* 29 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -607,7 +742,7 @@ }); /***/ }, -/* 30 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -620,11 +755,11 @@ }); /***/ }, -/* 31 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); @@ -638,16 +773,16 @@ }); /***/ }, -/* 32 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CSS__ = __webpack_require__(27); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ESNextReact__ = __webpack_require__(28); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__ = __webpack_require__(29); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__JSON__ = __webpack_require__(30); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Less__ = __webpack_require__(31); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CSS__ = __webpack_require__(26); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ESNextReact__ = __webpack_require__(27); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IgnoreStyles__ = __webpack_require__(28); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__JSON__ = __webpack_require__(29); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Less__ = __webpack_require__(30); @@ -660,7 +795,7 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getLoader; }}); /***/ }, -/* 33 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -681,12 +816,12 @@ }); /***/ }, -/* 34 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Library__ = __webpack_require__(33); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Library__ = __webpack_require__(32); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Simple__ = __webpack_require__(6); @@ -697,7 +832,7 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getOutput; }}); /***/ }, -/* 35 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -713,7 +848,7 @@ }); /***/ }, -/* 36 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -735,7 +870,7 @@ }); /***/ }, -/* 37 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -754,11 +889,11 @@ }); /***/ }, -/* 38 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(4); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default = __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__ && __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lib_generators__ = __webpack_require__(0); @@ -770,7 +905,7 @@ }); /***/ }, -/* 39 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -792,7 +927,7 @@ }); /***/ }, -/* 40 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -812,7 +947,7 @@ }); /***/ }, -/* 41 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -832,7 +967,7 @@ }); /***/ }, -/* 42 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -856,19 +991,19 @@ }); /***/ }, -/* 43 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__ = __webpack_require__(35); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__ = __webpack_require__(36); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__ = __webpack_require__(37); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ExtractCSS__ = __webpack_require__(38); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__ = __webpack_require__(39); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NodeExecutable__ = __webpack_require__(40); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__ = __webpack_require__(41); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__ = __webpack_require__(42); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AbortIfErrors__ = __webpack_require__(34); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BundleCommonChunks__ = __webpack_require__(35); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__EnableProductionLoaders__ = __webpack_require__(36); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ExtractCSS__ = __webpack_require__(37); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__MinifyAndTreeShake__ = __webpack_require__(38); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NodeExecutable__ = __webpack_require__(39); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NodeLoadSourceMaps__ = __webpack_require__(40); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SetNodeEnvironment__ = __webpack_require__(41); @@ -884,12 +1019,12 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPlugin; }}); /***/ }, -/* 44 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ = __webpack_require__(50); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ = __webpack_require__(49); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default = __WEBPACK_IMPORTED_MODULE_1_autoprefixer__ && __WEBPACK_IMPORTED_MODULE_1_autoprefixer__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_autoprefixer__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_autoprefixer___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_autoprefixer___default }); @@ -902,12 +1037,12 @@ }); /***/ }, -/* 45 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Autoprefixer__ = __webpack_require__(44); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Autoprefixer__ = __webpack_require__(43); @@ -915,7 +1050,7 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getPostCSS; }}); /***/ }, -/* 46 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -935,13 +1070,13 @@ }); /***/ }, -/* 47 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lib_generators__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Modules__ = __webpack_require__(7); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NPMAndModules__ = __webpack_require__(46); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NPMAndModules__ = __webpack_require__(45); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Simple__ = __webpack_require__(8); @@ -953,11 +1088,11 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getResolver; }}); /***/ }, -/* 48 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(2); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_fs___default = __WEBPACK_IMPORTED_MODULE_0_fs__ && __WEBPACK_IMPORTED_MODULE_0_fs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_fs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_fs__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_fs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_fs___default }); @@ -1005,14 +1140,14 @@ /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return getTestFiles; }}); /***/ }, -/* 49 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_object___default = __WEBPACK_IMPORTED_MODULE_0_lodash_object__ && __WEBPACK_IMPORTED_MODULE_0_lodash_object__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_0_lodash_object__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_0_lodash_object___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_0_lodash_object___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_colors__ = __webpack_require__(14); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_colors__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_colors___default = __WEBPACK_IMPORTED_MODULE_1_colors__ && __WEBPACK_IMPORTED_MODULE_1_colors__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_1_colors__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_1_colors__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_1_colors___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_1_colors___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debug__ = __webpack_require__(15); @@ -1021,7 +1156,7 @@ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_mocha__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_mocha___default = __WEBPACK_IMPORTED_MODULE_3_mocha__ && __WEBPACK_IMPORTED_MODULE_3_mocha__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_3_mocha__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_3_mocha__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_3_mocha___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_3_mocha___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_path__ = __webpack_require__(3); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_path__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_path___default = __WEBPACK_IMPORTED_MODULE_4_path__ && __WEBPACK_IMPORTED_MODULE_4_path__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_4_path__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_4_path__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_4_path___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_4_path___default }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rimraf__ = __webpack_require__(17); @@ -1030,11 +1165,11 @@ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_yargs__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_yargs___default = __WEBPACK_IMPORTED_MODULE_6_yargs__ && __WEBPACK_IMPORTED_MODULE_6_yargs__.__esModule ? function() { return __WEBPACK_IMPORTED_MODULE_6_yargs__['default'] } : function() { return __WEBPACK_IMPORTED_MODULE_6_yargs__; } /* harmony import */ Object.defineProperty(__WEBPACK_IMPORTED_MODULE_6_yargs___default, 'a', { get: __WEBPACK_IMPORTED_MODULE_6_yargs___default }); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_build__ = __webpack_require__(9); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lib_makeBuild__ = __webpack_require__(12); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lib_configs__ = __webpack_require__(10); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs_Testing__ = __webpack_require__(57); - /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__ = __webpack_require__(11); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lib_build__ = __webpack_require__(10); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lib_makeBuild__ = __webpack_require__(14); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lib_configs__ = __webpack_require__(12); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lib_configs_Testing__ = __webpack_require__(11); + /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__ = __webpack_require__(13); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; @@ -1069,7 +1204,14 @@ var loadBuildsFromPath = function loadBuildsFromPath(configPath) { try { console.log(blue('..loading config ' + configPath)); - var _builds = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); + /* eslint-disable no-undef */ + // SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE is our hook outside of + // webpack's normal requires -- webpack normally resolves requires at compile time + // and turns require statments that are dynamic, or that it can't resolve, into error throwing + // thunks. I tried doing this with require.ensure, and webpack turned that into + // error throwing thunks as well, so this seems like the 'cleanest' solution. + var _builds = SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE(/* harmony import */__WEBPACK_IMPORTED_MODULE_4_path___default.a.resolve(configPath)); + /* eslint-enable */ if (!Array.isArray(_builds)) { if (_builds.extensions === true) { return { extensions: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(_builds, 'extensions') }; @@ -1087,9 +1229,7 @@ var applyExtensions = function applyExtensions(builds, extensions) { var ext = extensions || {}; if (Object.keys(ext).length > 0) { - /* eslint-disable max-len */ console.log(blue('[extensions]') + ': ' + white(JSON.stringify(extensions, null, 2))); - /* eslint-enable */ } return builds.map(function (build) { @@ -1165,169 +1305,16 @@ }); /***/ }, -/* 50 */ +/* 49 */ /***/ function(module, exports) { module.exports = require("autoprefixer"); /***/ }, -/* 51 */, -/* 52 */ +/* 50 */ /***/ function(module, exports) { module.exports = require("node-notifier"); -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony default export */ exports["a"] = { - name: 'Client', - webpack: { - devtool: 'source-map', - entry: './src/Client.js', - output: { - generator: 'simple', - dest: './bin' - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'css', 'less'], - plugins: ['extract-css', 'abort-if-errors', { - generator: 'set-node-env', - env: 'client' - }] - } - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony default export */ exports["a"] = { - name: 'ProductionClient', - webpack: { - devtool: 'source-map', - entry: './src/Client.js', - output: { - generator: 'simple', - dest: './bin' - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'css', 'less'], - plugins: ['extract-css', { - generator: 'set-node-env', - env: 'client' - }, 'production-loaders', 'minify-and-treeshake', 'abort-if-errors'] - } - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony default export */ exports["a"] = { - name: 'ProductionServer', - webpack: { - devtool: 'source-map', - entry: './src/Server.js', - output: { - generator: 'simple', - dest: './bin' - }, - externals: { - generator: 'node-modules', - additional: ['os'] - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'ignore-styles'], - plugins: ['production-loaders', 'minify-and-treeshake', 'abort-if-errors', 'node-load-sourcemaps'], - node: { - Buffer: false, - process: false, - global: false, - __filename: true, - __dirname: true - } - } - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony default export */ exports["a"] = { - name: 'Server', - webpack: { - devtool: 'source-map', - entry: './src/Server.js', - output: { - generator: 'simple', - dest: './bin' - }, - externals: { - generator: 'node-modules', - additional: ['os'] - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'ignore-styles'], - plugins: ['abort-if-errors', 'node-load-sourcemaps'], - node: { - Buffer: false, - process: false, - global: false, - __filename: true, - __dirname: true, - os: false - } - } - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* harmony default export */ exports["a"] = { - name: 'Test', - webpack: { - devtool: 'source-map', - output: { - path: './.test', - filename: '[name]' - }, - resolve: { - generator: 'npm-and-modules', - paths: ['src', 'lib'], - extensions: ['', '.js', '.jsx', '.es6.js', '.json'] - }, - loaders: ['esnextreact', 'json', 'ignore-styles'], - plugins: ['extract-css', 'abort-if-errors'], - externals: { - generator: 'node-modules', - additional: ['@r/platform/createTest'] - } - } - }; - /***/ } /******/ ]); \ No newline at end of file diff --git a/blueprints.config.js b/blueprints.config.js index 15f8e51..6347907 100644 --- a/blueprints.config.js +++ b/blueprints.config.js @@ -1,3 +1,9 @@ +/* eslint-disable */ +// It would be cool to start compiling blueprings configs so you could write +// ES6+ for your ES6+ but that might be getting excessive. +var webpack = require('webpack'); +var _ = require('lodash'); + function makeConfig(name) { var entry = {}; entry[name] = './src/' + name + '.js'; @@ -43,4 +49,36 @@ function makeConfig(name) { }; } -module.exports = [ makeConfig('blueprints'), makeConfig('webfonts') ]; +function requireHookPlugin() { + return new webpack.BannerPlugin({ + banner: 'var SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE = require;', + raw: true, + entryOnly: true, + }); +} + +function makeBlueprintsConfig() { + var blueprintsConfig = makeConfig('blueprints'); + + // Blueprints is special because config files are written as node targeted javascript. + // To pull this off the blueprints compiled file needs a way to dynamicaly require files + // based on the arguments passed to it via CLI. Webpack normally resolves all require + // statements, and dynamic require's get turned into Errors (technically an automatic annonymous + // functions that throw errors). To get around this we use a banner plugin that defines a variable + // which is defined to be require. Banner plugins can run as raw, bypassing them compilation step which gets us around + // webpack's require re-writing. I tried doing this with require.ensure (which should work), + // but this also produced error throwing functions. + return _.merge( + {}, + blueprintsConfig, { + webpack: { + plugins: [ requireHookPlugin() ].concat(blueprintsConfig.webpack.plugins), + }, + } + ); +} + +module.exports = [ + makeBlueprintsConfig(), + makeConfig('webfonts'), +]; diff --git a/src/blueprints.js b/src/blueprints.js index 6733a0c..a015dd1 100755 --- a/src/blueprints.js +++ b/src/blueprints.js @@ -51,7 +51,14 @@ console.log(blue(`[cwd] ${process.cwd()}`)); const loadBuildsFromPath = configPath => { try { console.log(blue(`..loading config ${configPath}`)); - let builds = require(path.resolve(configPath)); + /* eslint-disable no-undef */ + // SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE is our hook outside of + // webpack's normal requires -- webpack normally resolves requires at compile time + // and turns require statments that are dynamic, or that it can't resolve, into error throwing + // thunks. I tried doing this with require.ensure, and webpack turned that into + // error throwing thunks as well, so this seems like the 'cleanest' solution. + let builds = SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE(path.resolve(configPath)); + /* eslint-enable */ if (!Array.isArray(builds)) { if (builds.extensions === true) { return { extensions: omit(builds, 'extensions') }; @@ -69,9 +76,8 @@ const loadBuildsFromPath = configPath => { const applyExtensions = (builds, extensions) => { const ext = extensions || {}; if (Object.keys(ext).length > 0) { - /* eslint-disable max-len */ - console.log(`${blue('[extensions]')}: ${white(JSON.stringify(extensions, null, 2))}`); - /* eslint-enable */ + console.log(`${blue('[extensions]')}: ${white(JSON.stringify( + extensions, null, 2))}`); } return builds.map(build => ({ ...build, ...ext })); From bd5bb0d27776c6a1e9f125267d4415b4a3d2a1de Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 3 Jun 2016 11:13:05 -0700 Subject: [PATCH 12/14] Remove globals from blueprints --- bin/blueprints.js | 113 ++++++++++++++++++++++++---------------------- src/blueprints.js | 108 ++++++++++++++++++++++++-------------------- 2 files changed, 118 insertions(+), 103 deletions(-) diff --git a/bin/blueprints.js b/bin/blueprints.js index d1af279..9ac2fff 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -1198,90 +1198,95 @@ var SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE = require; var argv = /* harmony import */__WEBPACK_IMPORTED_MODULE_6_yargs___default.a.alias('b', 'blueprintsPath').describe('b', 'path to a raw-config via a node file with moduel.exports = config').default('b', './blueprints.config.js').alias('p', 'production').describe('p', 'enable production settings for the default build cofings').default('p', false).alias('c', 'client').describe('c', 'use the default client build, assumes you have an entry point to a client at ~/lib/client.[some es6.js or .js or .jsx]').default('c', false).alias('s', 'server').describe('s', 'use the default server build, assumes you have an entry point to a server at ~/lib/server[some es6.js or .js or .jsx]').default('s', false).alias('a', 'clientAndServer').describe('a', '[DEFAULT=true] use both a client and a server build. checks if you have an extend build and applies it.').default('a', true).alias('w', 'watch').describe('w', '[DEFAULT=false] force watching of all builds').default('w', false).alias('i', 'ignoreBlueprints').describe('ignore the blueprints.config.js file in the current directory and use defaults').default('i', false).alias('t', 'runTest').describe('search for test files and run them').default('t', false).argv; /* eslint-enable */ - console.log(blue('[Blueprints] reading from ' + argv.blueprintsPath)); - console.log(blue('[cwd] ' + process.cwd())); - - var loadBuildsFromPath = function loadBuildsFromPath(configPath) { + var loadBuildsFromPath = function loadBuildsFromPath(filePath) { try { - console.log(blue('..loading config ' + configPath)); + console.log(blue('..loading config ' + filePath)); /* eslint-disable no-undef */ // SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE is our hook outside of // webpack's normal requires -- webpack normally resolves requires at compile time // and turns require statments that are dynamic, or that it can't resolve, into error throwing // thunks. I tried doing this with require.ensure, and webpack turned that into // error throwing thunks as well, so this seems like the 'cleanest' solution. - var _builds = SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE(/* harmony import */__WEBPACK_IMPORTED_MODULE_4_path___default.a.resolve(configPath)); + var builds = SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE(/* harmony import */__WEBPACK_IMPORTED_MODULE_4_path___default.a.resolve(filePath)); /* eslint-enable */ - if (!Array.isArray(_builds)) { - if (_builds.extensions === true) { - return { extensions: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(_builds, 'extensions') }; + if (!Array.isArray(builds)) { + if (builds.extensions === true) { + return { extensions: /* harmony import */__WEBPACK_IMPORTED_MODULE_0_lodash_object__["omit"].bind()(builds, 'extensions') }; } - _builds = [_builds]; + builds = [builds]; } - return { builds: _builds }; + return { builds: builds }; } catch (e) { debug(e); return {}; } }; - var applyExtensions = function applyExtensions(builds, extensions) { - var ext = extensions || {}; - if (Object.keys(ext).length > 0) { - console.log(blue('[extensions]') + ': ' + white(JSON.stringify(extensions, null, 2))); + var loadDefaultConfigs = function loadDefaultConfigs(options) { + console.log(blue('..using default configs')); + if (options.runTest) { + console.log(magenta('..Setting up tests:')); + return [_extends({}, /* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs_Testing__["a"], { + webpack: { + entry: /* harmony import */__WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__["a"].bind()('./') + } + })]; + } else if (options.client) { + console.log(blue('..client')); + return [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["a"].bind()(options.production)]; + } else if (options.server) { + console.log(blue('..server')); + return [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["b"].bind()(options.production)]; + } else if (options.clientAndServer) { + console.log(blue('..both')); + return [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["a"].bind()(options.production), /* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["b"].bind()(options.production)]; } - return builds.map(function (build) { - return _extends({}, build, ext); - }); + return []; }; - var makeConfig = function makeConfig(builds, extensions) { - return { - builds: applyExtensions(builds, extensions).map(/* harmony import */__WEBPACK_IMPORTED_MODULE_8_lib_makeBuild__["a"]) - }; - }; + var makeConfig = function makeConfig(options) { + console.log(blue('[Blueprints] reading from ' + options.blueprintsPath)); + console.log(blue('[cwd] ' + process.cwd())); - var builds = []; - var extensions = {}; + var builds = []; + var extensions = {}; - if (argv.blueprintsPath && !argv.ignoreBlueprints) { - var blueprints = loadBuildsFromPath(argv.blueprintsPath); - if (blueprints.extensions) { - extensions = blueprints.extensions; - } else if (blueprints.builds && blueprints.builds.length) { - builds = blueprints.builds; + if (options.blueprintsPath && !options.ignoreBlueprints) { + var blueprints = loadBuildsFromPath(options.blueprintsPath); + if (blueprints.extensions) { + extensions = blueprints.extensions; + } else if (blueprints.builds && blueprints.builds.length) { + builds = blueprints.builds; + } } - } - var loadDefaultConfigs = function loadDefaultConfigs() { - console.log(blue('..using default configs')); - if (argv.runTest) { - console.log(magenta('..Setting up tests:')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_10_lib_configs_Testing__["a"]]; - builds[0].webpack.entry = /* harmony import */__WEBPACK_IMPORTED_MODULE_11_lib_getWebpackEntryForTest__["a"].bind()('./'); - } else if (argv.client) { - console.log(blue('..client')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["a"].bind()(argv.production)]; - } else if (argv.server) { - console.log(blue('..server')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["b"].bind()(argv.production)]; - } else if (argv.clientAndServer) { - console.log(blue('..both')); - builds = [/* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["a"].bind()(argv.production), /* harmony import */__WEBPACK_IMPORTED_MODULE_9_lib_configs__["b"].bind()(argv.production)]; + if (!builds.length) { + loadDefaultConfigs(); } + + if (options.watch) { + extensions.watch = true; + } + + return { + builds: applyExtensions(builds, extensions).map(/* harmony import */__WEBPACK_IMPORTED_MODULE_8_lib_makeBuild__["a"]) + }; }; - if (!builds.length) { - loadDefaultConfigs(); - } + var applyExtensions = function applyExtensions(builds, extensions) { + var ext = extensions || {}; + if (Object.keys(ext).length > 0) { + console.log(blue('[extensions]') + ': ' + white(JSON.stringify(extensions, null, 2))); + } - if (argv.watch) { - extensions.watch = true; - } + return builds.map(function (build) { + return _extends({}, build, ext); + }); + }; - /* harmony import */__WEBPACK_IMPORTED_MODULE_7_lib_build__["a"].bind()(makeConfig(builds, extensions), function (stats) { + /* harmony import */__WEBPACK_IMPORTED_MODULE_7_lib_build__["a"].bind()(makeConfig(argv), function (stats) { if (stats.errors && stats.errors.length > 0 && !argv.watch) { console.log(red('ERROR IN BUILD. Aborting.')); diff --git a/src/blueprints.js b/src/blueprints.js index a015dd1..aa82585 100755 --- a/src/blueprints.js +++ b/src/blueprints.js @@ -45,19 +45,16 @@ const argv = yargs .argv; /* eslint-enable */ -console.log(blue(`[Blueprints] reading from ${argv.blueprintsPath}`)); -console.log(blue(`[cwd] ${process.cwd()}`)); - -const loadBuildsFromPath = configPath => { +const loadBuildsFromPath = filePath => { try { - console.log(blue(`..loading config ${configPath}`)); + console.log(blue(`..loading config ${filePath}`)); /* eslint-disable no-undef */ // SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE is our hook outside of // webpack's normal requires -- webpack normally resolves requires at compile time // and turns require statments that are dynamic, or that it can't resolve, into error throwing // thunks. I tried doing this with require.ensure, and webpack turned that into // error throwing thunks as well, so this seems like the 'cleanest' solution. - let builds = SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE(path.resolve(configPath)); + let builds = SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE(path.resolve(filePath)); /* eslint-enable */ if (!Array.isArray(builds)) { if (builds.extensions === true) { @@ -73,62 +70,75 @@ const loadBuildsFromPath = configPath => { } }; -const applyExtensions = (builds, extensions) => { - const ext = extensions || {}; - if (Object.keys(ext).length > 0) { - console.log(`${blue('[extensions]')}: ${white(JSON.stringify( - extensions, null, 2))}`); +const loadDefaultConfigs = options => { + console.log(blue('..using default configs')); + if (options.runTest) { + console.log(magenta('..Setting up tests:')); + return [{ + ...TestingConfig, + ...{ + webpack: { + entry: getWebpackEntryForTest('./'), + }, + }, + }]; + } else if (options.client) { + console.log(blue('..client')); + return [ getClientConfig(options.production) ]; + } else if (options.server) { + console.log(blue('..server')); + return [ getServerConfig(options.production) ]; + } else if (options.clientAndServer) { + console.log(blue('..both')); + return [ + getClientConfig(options.production), + getServerConfig(options.production), + ]; } - return builds.map(build => ({ ...build, ...ext })); + return []; }; -const makeConfig = (builds, extensions) => ({ - builds: applyExtensions(builds, extensions).map(makeBuild), -}); +const makeConfig = options => { + console.log(blue(`[Blueprints] reading from ${options.blueprintsPath}`)); + console.log(blue(`[cwd] ${process.cwd()}`)); -let builds = []; -let extensions = {}; + let builds = []; + let extensions = {}; -if (argv.blueprintsPath && !argv.ignoreBlueprints) { - const blueprints = loadBuildsFromPath(argv.blueprintsPath); - if (blueprints.extensions) { - extensions = blueprints.extensions; - } else if (blueprints.builds && blueprints.builds.length) { - builds = blueprints.builds; + if (options.blueprintsPath && !options.ignoreBlueprints) { + const blueprints = loadBuildsFromPath(options.blueprintsPath); + if (blueprints.extensions) { + extensions = blueprints.extensions; + } else if (blueprints.builds && blueprints.builds.length) { + builds = blueprints.builds; + } } -} -const loadDefaultConfigs = () => { - console.log(blue('..using default configs')); - if (argv.runTest) { - console.log(magenta('..Setting up tests:')); - builds = [ TestingConfig ]; - builds[0].webpack.entry = getWebpackEntryForTest('./'); - } else if (argv.client) { - console.log(blue('..client')); - builds = [ getClientConfig(argv.production) ]; - } else if (argv.server) { - console.log(blue('..server')); - builds = [ getServerConfig(argv.production) ]; - } else if (argv.clientAndServer) { - console.log(blue('..both')); - builds = [ - getClientConfig(argv.production), - getServerConfig(argv.production), - ]; + if (!builds.length) { + loadDefaultConfigs(); + } + + if (options.watch) { + extensions.watch = true; } + + return { + builds: applyExtensions(builds, extensions).map(makeBuild), + }; }; -if (!builds.length) { - loadDefaultConfigs(); -} +const applyExtensions = (builds, extensions) => { + const ext = extensions || {}; + if (Object.keys(ext).length > 0) { + console.log(`${blue('[extensions]')}: ${white(JSON.stringify( + extensions, null, 2))}`); + } -if (argv.watch) { - extensions.watch = true; -} + return builds.map(build => ({ ...build, ...ext })); +}; -build(makeConfig(builds, extensions), stats => { +build(makeConfig(argv), stats => { if (stats.errors && stats.errors.length > 0 && !argv.watch) { console.log(red( 'ERROR IN BUILD. Aborting.' From d1314fd89ea2c494dca6c50f1c3f976e71522363 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 3 Jun 2016 11:26:44 -0700 Subject: [PATCH 13/14] Fix execute build typo. Simplify makeBuild --- bin/blueprints.js | 26 +++++++++++++------------- lib/build.js | 8 ++++---- lib/makeBuild.js | 17 ++++++++--------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/bin/blueprints.js b/bin/blueprints.js index 9ac2fff..0cf9aa1 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -227,17 +227,17 @@ var SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE = require; var build = function build(config, cb) { var callback = cb || function () {}; var run = function run(build) { - return exectuteBuild(build, callback); + return executeBuild(build, callback); }; config.builds.forEach(run); }; /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return build; }}); - var exectuteBuild = function exectuteBuild(build, cb) { - var compiler = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack___default.a.bind()(build.webpackConfig); + var executeBuild = function executeBuild(build, cb) { + var compiler = /* harmony import */__WEBPACK_IMPORTED_MODULE_0_webpack___default.a.bind()(build.wepback); if (build.watch) { compiler.watch({}, function (err, stats) { - outputBuild(build.buildName)(err, stats); + outputBuild(build.name)(err, stats); cb(stats.toJson()); }); @@ -413,19 +413,19 @@ var SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE = require; + // ShortBuild is an object that looks like { + // name: String, + // watch: Bool, + // webpack: Object, shorthand webpack config + //} + var makeBuild = function makeBuild(shortBuild) { - return buildObject(shortBuild.name, shortBuild.watch, parseWebpackConfig(shortBuild.webpack, shortBuild.name)); + return _extends({}, shortBuild, { + wepback: parseWebpackConfig(shortBuild.webpack, shortBuild.name) + }); }; /* harmony export */ Object.defineProperty(exports, "a", {configurable: false, enumerable: true, get: function() { return makeBuild; }}); - var buildObject = function buildObject(buildName, watch, webpackConfig) { - return { - watch: watch, - buildName: buildName, - webpackConfig: webpackConfig - }; - }; - var mapNullable = function mapNullable(arrayOrNull, fn) { return (arrayOrNull || []).map(fn); }; diff --git a/lib/build.js b/lib/build.js index bb006cd..b117789 100644 --- a/lib/build.js +++ b/lib/build.js @@ -3,15 +3,15 @@ import notifier from 'node-notifier'; export const build = (config, cb) => { const callback = cb || (() => {}); - const run = build => exectuteBuild(build, callback); + const run = build => executeBuild(build, callback); config.builds.forEach(run); }; -const exectuteBuild = (build, cb) => { - const compiler = webpack(build.webpackConfig); +const executeBuild = (build, cb) => { + const compiler = webpack(build.wepback); if (build.watch) { compiler.watch({}, (err, stats) => { - outputBuild(build.buildName)(err, stats); + outputBuild(build.name)(err, stats); cb(stats.toJson()); }); diff --git a/lib/makeBuild.js b/lib/makeBuild.js index 4068969..9b6115c 100644 --- a/lib/makeBuild.js +++ b/lib/makeBuild.js @@ -8,16 +8,15 @@ import { getEntry } from 'lib/generators/entry'; import { getPostCSS } from 'lib/generators/postcss'; import { getExternals } from 'lib/generators/externals'; -export const makeBuild = shortBuild => (buildObject( - shortBuild.name, - shortBuild.watch, - parseWebpackConfig(shortBuild.webpack, shortBuild.name) -)); +// ShortBuild is an object that looks like { +// name: String, +// watch: Bool, +// webpack: Object, shorthand webpack config +//} -const buildObject = (buildName, watch, webpackConfig) => ({ - watch, - buildName, - webpackConfig, +export const makeBuild = shortBuild => ({ + ...shortBuild, + wepback: parseWebpackConfig(shortBuild.webpack, shortBuild.name), }); const mapNullable = (arrayOrNull, fn) => (arrayOrNull || []).map(fn); From 62cbdd53199c3aebbcefedf46819adbafffa7350 Mon Sep 17 00:00:00 2001 From: Ryan Schwers Date: Fri, 3 Jun 2016 11:29:38 -0700 Subject: [PATCH 14/14] remove un-needed new --- bin/blueprints.js | 2 +- lib/generators/plugins/ExtractCSS.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/blueprints.js b/bin/blueprints.js index 0cf9aa1..6feb90d 100755 --- a/bin/blueprints.js +++ b/bin/blueprints.js @@ -900,7 +900,7 @@ var SUPER_SECRET_REQUIRE_ONLY_CONFIG_LOADING_SHOULD_USE = require; - /* harmony default export */ exports["a"] = new /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"]('extract-css', function () { + /* harmony default export */ exports["a"] = /* harmony import */__WEBPACK_IMPORTED_MODULE_1_lib_generators__["a"].bind()('extract-css', function () { return new /* harmony import */__WEBPACK_IMPORTED_MODULE_0_extract_text_webpack_plugin___default.a('[name].css'); }); diff --git a/lib/generators/plugins/ExtractCSS.js b/lib/generators/plugins/ExtractCSS.js index b0d776d..84c3775 100644 --- a/lib/generators/plugins/ExtractCSS.js +++ b/lib/generators/plugins/ExtractCSS.js @@ -1,4 +1,4 @@ import ExtractTextPlugin from 'extract-text-webpack-plugin'; import { Generator } from 'lib/generators'; -export default new Generator('extract-css', () => (new ExtractTextPlugin('[name].css'))); +export default Generator('extract-css', () => (new ExtractTextPlugin('[name].css')));