fix(compiler-core): fix duplicated component identifier for names with non-ascii chars (#4429)

fix #4422
This commit is contained in:
shadowings-zy
2021-08-24 23:48:08 +08:00
committed by GitHub
parent 586ec51c49
commit 32827506ff
2 changed files with 16 additions and 2 deletions

View File

@@ -430,7 +430,10 @@ export function toValidAssetId(
name: string,
type: 'component' | 'directive' | 'filter'
): string {
return `_${type}_${name.replace(/[^\w]/g, '_')}`
// see issue#4422, we need adding identifier on validAssetId if variable `name` has specific character
return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => {
return searchValue === '-' ? '_' : name.charCodeAt(replaceValue).toString()
})}`
}
// Check if a node contains expressions that reference current context scope ids