UNPKG

kk-webpack-base--config

Version:

Webpack config for kk-webpack-base

50 lines (44 loc) 1.15 kB
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;