From 7fb9ada963445da68f4b1805bde7493a2cd17bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E7=81=BC?= Date: Fri, 4 Nov 2022 15:31:43 +0800 Subject: [PATCH] fix: devServer proxy config should support array type --- packages/@vue/cli-service/lib/util/prepareProxy.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/@vue/cli-service/lib/util/prepareProxy.js b/packages/@vue/cli-service/lib/util/prepareProxy.js index a65f0f6341..6d2754f85f 100644 --- a/packages/@vue/cli-service/lib/util/prepareProxy.js +++ b/packages/@vue/cli-service/lib/util/prepareProxy.js @@ -27,7 +27,7 @@ module.exports = function prepareProxy (proxy, appPublicFolder) { if (!proxy) { return undefined } - if (Array.isArray(proxy) || (typeof proxy !== 'object' && typeof proxy !== 'string')) { + if (typeof proxy !== 'object' && typeof proxy !== 'string') { console.log( chalk.red( 'When specified, "proxy" in package.json must be a string or an object.' @@ -117,6 +117,14 @@ module.exports = function prepareProxy (proxy, appPublicFolder) { ] } + // Support proxy as an array + if (Array.isArray(proxy)) { + return proxy.map(item => { + if (typeof item === 'function') return item + return Object.assign({}, defaultConfig, item) + }) + } + // Otherwise, proxy is an object so create an array of proxies to pass to webpackDevServer return Object.keys(proxy).map(context => { const config = proxy[context]