Skip to content

Commit 5bf6051

Browse files
authored
fix: vue-template-compiler can be optional if @vue/compiler-sfc presents (#5123)
1 parent d11ecc2 commit 5bf6051

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

packages/@vue/cli-service/lib/config/base.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,21 @@ module.exports = (api, options) => {
7373
// js is handled by cli-plugin-babel ---------------------------------------
7474

7575
// vue-loader --------------------------------------------------------------
76-
const vueLoaderCacheConfig = api.genCacheConfig('vue-loader', {
77-
'vue-loader': require('vue-loader/package.json').version,
78-
/* eslint-disable-next-line node/no-extraneous-require */
79-
'@vue/component-compiler-utils': require('@vue/component-compiler-utils/package.json').version,
80-
'vue-template-compiler': require('vue-template-compiler/package.json').version
81-
})
76+
const vueLoaderCacheIdentifier = {
77+
'vue-loader': require('vue-loader/package.json').version
78+
}
79+
80+
// The following 2 deps are sure to exist in Vue 2 projects.
81+
// But once we switch to Vue 3, they're no longer mandatory.
82+
// (In Vue 3 they are replaced by @vue/compiler-sfc)
83+
// So wrap them in a try catch block.
84+
try {
85+
vueLoaderCacheIdentifier['@vue/component-compiler-utils'] =
86+
require('@vue/component-compiler-utils/package.json').version
87+
vueLoaderCacheIdentifier['vue-template-compiler'] =
88+
require('vue-template-compiler/package.json').version
89+
} catch (e) {}
90+
const vueLoaderCacheConfig = api.genCacheConfig('vue-loader', vueLoaderCacheIdentifier)
8291

8392
webpackConfig.module
8493
.rule('vue')

packages/@vue/cli-service/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@
9494
},
9595
"stylus-loader": {
9696
"optional": true
97+
},
98+
"vue-template-compiler": {
99+
"optional": true
97100
}
98101
},
99102
"devDependencies": {

0 commit comments

Comments
 (0)