From 8cf3745ef959fe99ecd38dc6d556778d105687f9 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Tue, 11 Aug 2020 16:53:44 +0800 Subject: [PATCH] fix: load vue from `@vue/cli-service-global` on `vue serve`/`vue build` (#5774) --- packages/@vue/cli-service/lib/config/base.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/@vue/cli-service/lib/config/base.js b/packages/@vue/cli-service/lib/config/base.js index 8d45f69bcc..343a46cffc 100644 --- a/packages/@vue/cli-service/lib/config/base.js +++ b/packages/@vue/cli-service/lib/config/base.js @@ -69,9 +69,11 @@ module.exports = (api, options) => { // js is handled by cli-plugin-babel --------------------------------------- // vue-loader -------------------------------------------------------------- - const vue = loadModule('vue', api.service.context) + // try to load vue in the project + // fallback to peer vue package in the instant prototyping environment + const vue = loadModule('vue', api.service.context) || loadModule('vue', __dirname) - if (semver.major(vue.version) === 2) { + if (vue && semver.major(vue.version) === 2) { // for Vue 2 projects const vueLoaderCacheConfig = api.genCacheConfig('vue-loader', { 'vue-loader': require('vue-loader/package.json').version, @@ -106,7 +108,7 @@ module.exports = (api, options) => { webpackConfig .plugin('vue-loader') .use(require('vue-loader').VueLoaderPlugin) - } else if (semver.major(vue.version) === 3) { + } else if (vue && semver.major(vue.version) === 3) { // for Vue 3 projects const vueLoaderCacheConfig = api.genCacheConfig('vue-loader', { 'vue-loader': require('vue-loader-v16/package.json').version,