X_CACHE_HANDLER_NOT_SUPPORTED,
X_SCOPE_ID_NOT_SUPPORTED,
+ // deprecations
+ DEPRECATION_VNODE_HOOKS,
+
// Special value for higher-order compilers to pick up the last code
// to avoid collision of error codes. This should always be kept as the last
// item.
[ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
[ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED]: `"scopeId" option is only supported in module mode.`,
+ // deprecations
+ [ErrorCodes.DEPRECATION_VNODE_HOOKS]: `@vnode-* hooks in templates are deprecated. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted.`,
+
// just to fulfill types
[ErrorCodes.__EXTEND_POINT__]: ``
}
if (arg.type === NodeTypes.SIMPLE_EXPRESSION) {
if (arg.isStatic) {
let rawName = arg.content
- // TODO deprecate @vnodeXXX usage
+ if (__DEV__ && rawName.startsWith('vnode')) {
+ context.onWarn(
+ createCompilerError(ErrorCodes.DEPRECATION_VNODE_HOOKS, arg.loc)
+ )
+ }
if (rawName.startsWith('vue:')) {
rawName = `vnode-${rawName.slice(4)}`
}
}
export const enum DOMErrorCodes {
- X_V_HTML_NO_EXPRESSION = 51 /* ErrorCodes.__EXTEND_POINT__ */,
+ X_V_HTML_NO_EXPRESSION = 52 /* ErrorCodes.__EXTEND_POINT__ */,
X_V_HTML_WITH_CHILDREN,
X_V_TEXT_NO_EXPRESSION,
X_V_TEXT_WITH_CHILDREN,