fix(compiler-sfc): fix import usage detection for names containing $

fix #4274
This commit is contained in:
Evan You
2021-08-09 12:17:22 -04:00
parent 4781965cc2
commit 88a4504e82
3 changed files with 13 additions and 8 deletions

View File

@@ -332,9 +332,11 @@ export function compileScript(
let isUsedInTemplate = true
if (isTS && sfc.template && !sfc.template.src) {
isUsedInTemplate = new RegExp(`\\b${local}\\b`).test(
resolveTemplateUsageCheckString(sfc)
)
isUsedInTemplate = new RegExp(
// #4274 escape $ since it's a special char in regex
// (and is the only regex special char that is valid in identifiers)
`[^\\w$_]${local.replace(/\$/g, '\\$')}[^\\w$_]`
).test(resolveTemplateUsageCheckString(sfc))
}
userImports[local] = {