metalpress
Version:
Create a blog easily with Metalsmith.
113 lines (89 loc) • 2.89 kB
JavaScript
;
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;
}