diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index 87f9dbb82a..a16ca7e492 100644 --- a/packages/@vue/cli-service/lib/commands/serve.js +++ b/packages/@vue/cli-service/lib/commands/serve.js @@ -5,6 +5,7 @@ const { hasProjectPnpm, IpcMessenger } = require('@vue/cli-shared-utils') +const getBaseUrl = require('../util/getBaseUrl'); const defaults = { host: '0.0.0.0', @@ -14,6 +15,7 @@ const defaults = { /** @type {import('@vue/cli-service').ServicePlugin} */ module.exports = (api, options) => { + const baseUrl = getBaseUrl(options); api.registerCommand('serve', { description: 'start development server', usage: 'vue-cli-service serve [options] [entry]', @@ -116,9 +118,7 @@ module.exports = (api, options) => { protocol, host, port, - isAbsoluteUrl(options.publicPath) || options.publicPath === 'auto' - ? '/' - : options.publicPath + isAbsoluteUrl(baseUrl) ? '/' : baseUrl ) const localUrlForBrowser = publicUrl || urls.localUrlForBrowser @@ -189,7 +189,7 @@ module.exports = (api, options) => { 'text/html', 'application/xhtml+xml' ], - rewrites: genHistoryApiFallbackRewrites(options.publicPath, options.pages) + rewrites: genHistoryApiFallbackRewrites(baseUrl, options.pages) }, hot: !isProduction }, projectDevServerOptions, { diff --git a/packages/@vue/cli-service/lib/util/getBaseUrl.js b/packages/@vue/cli-service/lib/util/getBaseUrl.js new file mode 100644 index 0000000000..e8b4497229 --- /dev/null +++ b/packages/@vue/cli-service/lib/util/getBaseUrl.js @@ -0,0 +1,3 @@ +module.exports = function getBaseUrl (options) { + return options.publicPath === 'auto' ? '' : options.publicPath +} diff --git a/packages/@vue/cli-service/lib/util/resolveClientEnv.js b/packages/@vue/cli-service/lib/util/resolveClientEnv.js index 2aa83f1554..dd4a7e2d56 100644 --- a/packages/@vue/cli-service/lib/util/resolveClientEnv.js +++ b/packages/@vue/cli-service/lib/util/resolveClientEnv.js @@ -1,3 +1,4 @@ +const getBaseUrl = require('./getBaseUrl') const prefixRE = /^VUE_APP_/ module.exports = function resolveClientEnv (options, raw) { @@ -7,7 +8,7 @@ module.exports = function resolveClientEnv (options, raw) { env[key] = process.env[key] } }) - env.BASE_URL = options.publicPath + env.BASE_URL = getBaseUrl(options) if (raw) { return env