From d14d4e693c52b6701c173c35da7804dbc32dccc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barth=C3=A9l=C3=A9my=20Ledoux?= Date: Mon, 13 Aug 2018 11:14:18 -0500 Subject: [PATCH] fix: allow relative baseUrl other than ./ (#2168) --- .../cli-service/__tests__/Service.spec.js | 20 +++++++++++++++++++ packages/@vue/cli-service/lib/Service.js | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/@vue/cli-service/__tests__/Service.spec.js b/packages/@vue/cli-service/__tests__/Service.spec.js index a71c8d4e9..dfd6cc005 100644 --- a/packages/@vue/cli-service/__tests__/Service.spec.js +++ b/packages/@vue/cli-service/__tests__/Service.spec.js @@ -94,6 +94,26 @@ test('handle option baseUrl and outputDir correctly', () => { expect(service.projectOptions.outputDir).toBe('/public') }) +test('normalize baseUrl when relative', () => { + mockPkg({ + vue: { + baseUrl: './foo/bar' + } + }) + const service = createMockService() + expect(service.projectOptions.baseUrl).toBe('foo/bar/') +}) + +test('keep baseUrl when empty', () => { + mockPkg({ + vue: { + baseUrl: '' + } + }) + const service = createMockService() + expect(service.projectOptions.baseUrl).toBe('') +}) + test('load project options from vue.config.js', () => { process.env.VUE_CLI_SERVICE_CONFIG_PATH = `/vue.config.js` fs.writeFileSync('/vue.config.js', `module.exports = { lintOnSave: false }`) diff --git a/packages/@vue/cli-service/lib/Service.js b/packages/@vue/cli-service/lib/Service.js index 2cdd0f89b..2d38010b6 100644 --- a/packages/@vue/cli-service/lib/Service.js +++ b/packages/@vue/cli-service/lib/Service.js @@ -298,10 +298,10 @@ module.exports = class Service { } // normalize some options + ensureSlash(resolved, 'baseUrl') if (typeof resolved.baseUrl === 'string') { resolved.baseUrl = resolved.baseUrl.replace(/^\.\//, '') } - ensureSlash(resolved, 'baseUrl') removeSlash(resolved, 'outputDir') // deprecation warning