fix(compiler-sfc): fix import usage check in template strings in expressions

fix #4340
This commit is contained in:
Evan You
2021-08-16 18:03:03 -04:00
parent ad66295cb3
commit f855ccb2c1
3 changed files with 18 additions and 6 deletions

View File

@@ -2242,5 +2242,15 @@ function resolveTemplateUsageCheckString(sfc: SFCDescriptor) {
}
function stripStrings(exp: string) {
return exp.replace(/'[^']+'|"[^"]+"|`[^`]+`/g, '')
return exp
.replace(/'[^']+'|"[^"]+"/g, '')
.replace(/`[^`]+`/g, stripTemplateString)
}
function stripTemplateString(str: string): string {
const interpMatch = str.match(/\${[^}]+}/g)
if (interpMatch) {
return interpMatch.map(m => m.slice(2, -1)).join(',')
}
return ''
}