kk-webpack-base--config
Version:
Webpack config for kk-webpack-base
50 lines (44 loc) • 1.15 kB
JavaScript
const { mergeWith } = require('lodash');
const fs = require('fs');
const clean = (obj) => {
for (var propName in obj) {
if (
obj[propName] === null ||
obj[propName] === undefined ||
obj[propName].length <= 0
) {
delete obj[propName];
}
}
return obj;
};
let projectConfig = {};
let defaultConfig = {
publicPath: 'public/',
sourcePath: 'src/',
twigNamespaces: {
App: './',
standard: './',
},
};
let config = { ...defaultConfig };
let path = './webpack-project-config.json';
try {
// get config if file exists
if (fs.existsSync(path)) {
projectConfig = fs.readFileSync(path, 'utf-8');
if (projectConfig) {
projectConfig = JSON.parse(projectConfig);
projectConfig = clean(projectConfig);
// doing a deepmerge of defaltconfig and projectconfig using lodash
config = mergeWith(config, projectConfig, (objValue, srcValue) => {
if (Array.isArray(objValue)) {
return objValue.concat(srcValue);
}
});
}
}
} catch (err) {
console.warn('no custom project config found, using default config...');
}
exports.config = config;