From ab2c3685b9d7f43c07aebec4335c7cb87deffbdf Mon Sep 17 00:00:00 2001 From: billyct Date: Thu, 14 Jul 2022 11:57:44 +0800 Subject: [PATCH] Add vue 2.7 feature --- lib/config-generator.js | 1 + lib/features.js | 9 +++++++++ lib/utils/get-vue-version.js | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/config-generator.js b/lib/config-generator.js index 7c4dc61e7..fc761fd47 100644 --- a/lib/config-generator.js +++ b/lib/config-generator.js @@ -132,6 +132,7 @@ class ConfigGenerator { const vueVersion = getVueVersion(this.webpackConfig); switch (vueVersion) { case 2: + case '2.7': config.resolve.alias['vue$'] = 'vue/dist/vue.esm.js'; break; case 3: diff --git a/lib/features.js b/lib/features.js index 5c6e13211..7fd551bb8 100644 --- a/lib/features.js +++ b/lib/features.js @@ -97,6 +97,15 @@ const features = { ], description: 'load Vue files' }, + 'vue2.7': { + method: 'enableVueLoader()', + // vue is needed so the end-user can do things + packages: [ + { name: 'vue', version: '^2.7' }, + { name: 'vue-loader', version: '^15.10.0' }, + ], + description: 'load Vue files' + }, vue3: { method: 'enableVueLoader()', // vue is needed so the end-user can do things diff --git a/lib/utils/get-vue-version.js b/lib/utils/get-vue-version.js index a6e4c7147..5dbff8b7f 100644 --- a/lib/utils/get-vue-version.js +++ b/lib/utils/get-vue-version.js @@ -16,7 +16,7 @@ const logger = require('../logger'); /** * @param {WebpackConfig} webpackConfig - * @return {int|null} + * @return {int|string|null} */ module.exports = function(webpackConfig) { if (webpackConfig.vueOptions.version !== null) { @@ -30,6 +30,10 @@ module.exports = function(webpackConfig) { return 2; } + if (semver.satisfies(vueVersion, '^2.7')) { + return '2.7'; + } + if (semver.satisfies(vueVersion, '^2')) { return 2; }