Skip to content

Commit fdd0338

Browse files
committed
fix: relay correct error message on vue-template-compiler version mismatch
1 parent 9beed01 commit fdd0338

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

Diff for: lib/index.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,18 @@ const { NS } = require('./plugin')
1414

1515
let errorEmitted = false
1616

17-
function loadTemplateCompiler () {
17+
function loadTemplateCompiler (loaderContext) {
1818
try {
1919
return require('vue-template-compiler')
2020
} catch (e) {
21-
throw new Error(
22-
`[vue-loader] vue-template-compiler must be installed as a peer dependency, ` +
23-
`or a compatible compiler implementation must be passed via options.`
24-
)
21+
if (/version mismatch/.test(e.toString())) {
22+
loaderContext.emitError(e)
23+
} else {
24+
loaderContext.emitError(new Error(
25+
`[vue-loader] vue-template-compiler must be installed as a peer dependency, ` +
26+
`or a compatible compiler implementation must be passed via options.`
27+
))
28+
}
2529
}
2630
}
2731

@@ -62,7 +66,7 @@ module.exports = function (source) {
6266

6367
const descriptor = parse({
6468
source,
65-
compiler: options.compiler || loadTemplateCompiler(),
69+
compiler: options.compiler || loadTemplateCompiler(loaderContext),
6670
filename,
6771
sourceRoot,
6872
needMap: sourceMap

0 commit comments

Comments
 (0)