UNPKG

metalpress

Version:

Create a blog easily with Metalsmith.

113 lines (89 loc) 2.89 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadCustomWebpack = loadCustomWebpack; exports.default = function (config) { if (!config.basePath) { throw new Error('Did not define config.basePath'); } var bundle = { entry: _path2.default.resolve(config.basePath, './src/assets/js/index.js'), output: { path: _path2.default.resolve(config.basePath, './dist/assets/js') } }; // attempt custom webpack config var customWebpack = {}; if (config.webpack) { customWebpack = loadCustomWebpack(config); } // jquery configuration if (config.jquery) { _webpack2.default.externals = _webpackProd2.default.externals = { 'jquery': 'jQuery' }; } // return webpack configuration return { dev: Object.assign({}, _webpack2.default, bundle, customWebpack.dev), prod: Object.assign({}, _webpackProd2.default, bundle, customWebpack.prod) }; }; exports.omitWebpack = omitWebpack; var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _webpack = require('./webpack.config'); var _webpack2 = _interopRequireDefault(_webpack); var _webpackProd = require('./webpack.prod.config'); var _webpackProd2 = _interopRequireDefault(_webpackProd); var _deepAssign = require('deep-assign'); var _deepAssign2 = _interopRequireDefault(_deepAssign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } require("babel-register", { presets: ['latest', 'stage-0'] }); function loadCustomWebpack(config) { var custom = {}; try { // attempt to load custom config custom.dev = require(_path2.default.resolve(config.basePath, config.webpack.dev)); if (custom.dev.default) { custom.dev = custom.dev.default; } custom.prod = require(_path2.default.resolve(config.basePath, config.webpack.prod)); if (custom.prod.default) { custom.prod = custom.prod.default; } custom.dev.resolve = { root: [_path2.default.resolve(config.basePath, 'node_modules'), _path2.default.resolve(config.basePath, 'src/lib')] }; custom.prod.resolve = { root: [_path2.default.resolve(config.basePath, 'node_modules'), _path2.default.resolve(config.basePath, 'src/lib')] }; return custom; } catch (e) { if (!config.webpack) { throw new Error('Could not load custom webpack config. ' + e); return {}; } if (!config.webpack.dev) { console.log('Did not specify path to \'webpack.dev\'.'); } if (!config.webpack.prod) { console.log('Did not specify path to \'webpack.prod\'.'); } return {}; } } function omitWebpack(config) { var newConfig = {}; for (var c in config) { if (c !== 'webpack') { newConfig[c] = config[c]; } } return newConfig; }