From 735e29888a74e2993a3720d370bea0f13f793691 Mon Sep 17 00:00:00 2001 From: Romulo Cintra Date: Thu, 23 May 2019 16:04:50 +0200 Subject: [PATCH 1/2] feat: add async load of config --- packages/@vuepress/core/lib/node/loadConfig.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/@vuepress/core/lib/node/loadConfig.js b/packages/@vuepress/core/lib/node/loadConfig.js index c786e88d44..9e4ee575b9 100644 --- a/packages/@vuepress/core/lib/node/loadConfig.js +++ b/packages/@vuepress/core/lib/node/loadConfig.js @@ -28,9 +28,12 @@ module.exports = function loadConfig (vuepressDir, bustCache = true) { } else if (fs.existsSync(configTomlPath)) { siteConfig = parseConfig(configTomlPath) } else if (fs.existsSync(configPath)) { - siteConfig = require(configPath) + if (typeof require(configPath).then === 'function') { + siteConfig = require(configPath).then((config) => config) + } else { + siteConfig = require(configPath) + } } - return siteConfig } From ad4383196a4f93d244c976ea2bd5c4a4f175851c Mon Sep 17 00:00:00 2001 From: Romulo Cintra Date: Tue, 10 Sep 2019 09:24:03 +0200 Subject: [PATCH 2/2] refacto: loadConfig add catch with logger.error --- packages/@vuepress/core/lib/node/loadConfig.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/@vuepress/core/lib/node/loadConfig.js b/packages/@vuepress/core/lib/node/loadConfig.js index 9e4ee575b9..bc788ac853 100644 --- a/packages/@vuepress/core/lib/node/loadConfig.js +++ b/packages/@vuepress/core/lib/node/loadConfig.js @@ -4,7 +4,7 @@ * Module dependencies. */ -const { fs, path } = require('@vuepress/shared-utils') +const { fs, path, logger } = require('@vuepress/shared-utils') const yamlParser = require('js-yaml') const tomlParser = require('toml') @@ -29,7 +29,9 @@ module.exports = function loadConfig (vuepressDir, bustCache = true) { siteConfig = parseConfig(configTomlPath) } else if (fs.existsSync(configPath)) { if (typeof require(configPath).then === 'function') { - siteConfig = require(configPath).then((config) => config) + siteConfig = require(configPath).then((config) => config).catch(()=>{ + logger.error('Sorry ! We were unable to load your async configuration'); + }) } else { siteConfig = require(configPath) }