build-boiler
Version:
Build Boilerplate using Webpack, Eslint, Assemble, Nunjucks, and BrowserSync
94 lines (68 loc) • 3.56 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
exports.default = function (config) {
var eslintParentConfig = config.eslint;
var isMainTask = config.isMainTask;
var environment = config.environment;
var sources = config.sources;
var utils = config.utils;
var webpackConfig = config.webpackConfig;
var ENV = config.ENV;
var isDev = environment.isDev;
var isServer = environment.isServer;
var addbase = utils.addbase;
var srcDir = sources.srcDir;
var entry = sources.entry;
var externalConfig = webpackConfig.externals;
var main = entry.main;
var DEBUG = isDev;
var TEST = ENV === 'test' || ENV === 'ci';
var SERVER = ENV === 'server' || isServer;
var extract = !isMainTask;
var _ref = _lodash2.default.isArray(main) ? main.map(function (fp) {
return addbase(srcDir, fp);
}) : [];
var _ref2 = _slicedToArray(_ref, 1);
var expose = _ref2[0];
var _makeExternals = (0, _makeExternals3.default)(externalConfig, SERVER);
var externals = _makeExternals.externals;
var provide = _makeExternals.provide;
var toolsPlugin = (0, _isomorpicTools2.default)(_lodash2.default.assign({}, config, { isPlugin: true }));
var sharedConfig = {
toolsPlugin: toolsPlugin,
DEBUG: DEBUG,
TEST: TEST,
SERVER: SERVER
};
var loaders = (0, _loaders2.default)(_lodash2.default.assign({}, config, sharedConfig, { extract: extract, expose: expose }));
var plugins = (0, _plugins2.default)(_lodash2.default.assign({}, config, sharedConfig, { provide: provide }));
var defaultEslintConfig = {
isDev: isDev,
lintEnv: TEST ? 'test' : 'web',
basic: true,
react: false
};
var eslintConfig = (0, _eslintConfig2.default)(_lodash2.default.assign({}, defaultEslintConfig, eslintParentConfig));
return _extends({
isServer: SERVER,
externals: externals
}, loaders, plugins, eslintConfig);
};
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _eslintConfig = require('eslint-config');
var _eslintConfig2 = _interopRequireDefault(_eslintConfig);
var _loaders = require('./loaders');
var _loaders2 = _interopRequireDefault(_loaders);
var _plugins = require('./plugins');
var _plugins2 = _interopRequireDefault(_plugins);
var _isomorpicTools = require('./isomorpic-tools');
var _isomorpicTools2 = _interopRequireDefault(_isomorpicTools);
var _makeExternals2 = require('./make-externals');
var _makeExternals3 = _interopRequireDefault(_makeExternals2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports['default'];