From cc41cc1e3b32da22e72032a0d57b242a8532335d Mon Sep 17 00:00:00 2001 From: Date: Fri, 30 Jun 2017 21:02:09 -0700 Subject: [PATCH] Support config-local.json overrides config.json --- .gitignore | 1 + resources/assets/build/config.js | 4 +++- resources/assets/build/util/desire.js | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 resources/assets/build/util/desire.js diff --git a/.gitignore b/.gitignore index d6f6c42..aa89163 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ node_modules npm-debug.log yarn-error.log vendor +resources/assets/config-local.json diff --git a/resources/assets/build/config.js b/resources/assets/build/config.js index c9a04a1..10b5a0f 100644 --- a/resources/assets/build/config.js +++ b/resources/assets/build/config.js @@ -2,7 +2,9 @@ const path = require('path'); const { argv } = require('yargs'); const merge = require('webpack-merge'); -const userConfig = require('../config'); +const desire = require('./util/desire'); + +const userConfig = merge(desire(`${__dirname}/../config`), desire(`${__dirname}/../config-local`)); const isProduction = !!((argv.env && argv.env.production) || argv.p); const rootPath = (userConfig.paths && userConfig.paths.root) diff --git a/resources/assets/build/util/desire.js b/resources/assets/build/util/desire.js new file mode 100644 index 0000000..b586bd4 --- /dev/null +++ b/resources/assets/build/util/desire.js @@ -0,0 +1,14 @@ +/** + * @export + * @param {string} dependency + * @param {any} [fallback] + * @return {any} + */ +module.exports = (dependency, fallback) => { + try { + require.resolve(dependency); + } catch (err) { + return fallback; + } + return require(dependency); // eslint-disable-line import/no-dynamic-require +};