wip: generate codeframe for compiler deprecations
This commit is contained in:
parent
d974adb327
commit
79cbf21c3e
@ -124,13 +124,8 @@ export function warnDeprecation(
|
|||||||
typeof message === 'function' ? message(...args) : message
|
typeof message === 'function' ? message(...args) : message
|
||||||
}${link ? `\n Details: ${link}` : ``}`
|
}${link ? `\n Details: ${link}` : ``}`
|
||||||
|
|
||||||
if (loc) {
|
const err = new SyntaxError(msg) as CompilerError
|
||||||
const err = new SyntaxError(msg) as CompilerError
|
err.code = key
|
||||||
err.code = key
|
if (loc) err.loc = loc
|
||||||
err.loc = loc
|
context.onWarn(err)
|
||||||
context.onWarn(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
context.onWarn(msg)
|
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import { CompilerCompatOptions } from './compat/compatConfig'
|
|||||||
import { ParserPlugin } from '@babel/parser'
|
import { ParserPlugin } from '@babel/parser'
|
||||||
|
|
||||||
export interface ErrorHandlingOptions {
|
export interface ErrorHandlingOptions {
|
||||||
onWarn?: (msg: string | CompilerError) => void
|
onWarn?: (warning: CompilerError) => void
|
||||||
onError?: (error: CompilerError) => void
|
onError?: (error: CompilerError) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// This entry is the "full-build" that includes both the runtime
|
// This entry is the "full-build" that includes both the runtime
|
||||||
// and the compiler, and supports on-the-fly compilation of the template option.
|
// and the compiler, and supports on-the-fly compilation of the template option.
|
||||||
import { initDev } from './dev'
|
import { initDev } from './dev'
|
||||||
import { compile, CompilerOptions, CompilerError } from '@vue/compiler-dom'
|
import { compile, CompilerError, CompilerOptions } from '@vue/compiler-dom'
|
||||||
import {
|
import {
|
||||||
registerRuntimeCompiler,
|
registerRuntimeCompiler,
|
||||||
RenderFunction,
|
RenderFunction,
|
||||||
@ -55,27 +55,32 @@ function compileToFunction(
|
|||||||
extend(
|
extend(
|
||||||
{
|
{
|
||||||
hoistStatic: true,
|
hoistStatic: true,
|
||||||
onError(err: CompilerError) {
|
onError(err) {
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
const message = `Template compilation error: ${err.message}`
|
onError(err)
|
||||||
const codeFrame =
|
|
||||||
err.loc &&
|
|
||||||
generateCodeFrame(
|
|
||||||
template as string,
|
|
||||||
err.loc.start.offset,
|
|
||||||
err.loc.end.offset
|
|
||||||
)
|
|
||||||
warn(codeFrame ? `${message}\n${codeFrame}` : message)
|
|
||||||
} else {
|
} else {
|
||||||
/* istanbul ignore next */
|
/* istanbul ignore next */
|
||||||
throw err
|
throw err
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
onWarn: __DEV__ ? onError : NOOP
|
||||||
|
} as CompilerOptions,
|
||||||
options
|
options
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
function onError(err: CompilerError) {
|
||||||
|
const message = `Template compilation error: ${err.message}`
|
||||||
|
const codeFrame =
|
||||||
|
err.loc &&
|
||||||
|
generateCodeFrame(
|
||||||
|
template as string,
|
||||||
|
err.loc.start.offset,
|
||||||
|
err.loc.end.offset
|
||||||
|
)
|
||||||
|
warn(codeFrame ? `${message}\n${codeFrame}` : message)
|
||||||
|
}
|
||||||
|
|
||||||
// The wildcard import results in a huge object with every export
|
// The wildcard import results in a huge object with every export
|
||||||
// with keys that cannot be mangled, and can be quite heavy size-wise.
|
// with keys that cannot be mangled, and can be quite heavy size-wise.
|
||||||
// In the global build we know `Vue` is available globally so we can avoid
|
// In the global build we know `Vue` is available globally so we can avoid
|
||||||
|
@ -49,27 +49,32 @@ function compileToFunction(
|
|||||||
extend(
|
extend(
|
||||||
{
|
{
|
||||||
hoistStatic: true,
|
hoistStatic: true,
|
||||||
onError(err: CompilerError) {
|
onError(err) {
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
const message = `Template compilation error: ${err.message}`
|
onError(err)
|
||||||
const codeFrame =
|
|
||||||
err.loc &&
|
|
||||||
generateCodeFrame(
|
|
||||||
template as string,
|
|
||||||
err.loc.start.offset,
|
|
||||||
err.loc.end.offset
|
|
||||||
)
|
|
||||||
warn(codeFrame ? `${message}\n${codeFrame}` : message)
|
|
||||||
} else {
|
} else {
|
||||||
/* istanbul ignore next */
|
/* istanbul ignore next */
|
||||||
throw err
|
throw err
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
onWarn: __DEV__ ? onError : NOOP
|
||||||
|
} as CompilerOptions,
|
||||||
options
|
options
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
function onError(err: CompilerError) {
|
||||||
|
const message = `Template compilation error: ${err.message}`
|
||||||
|
const codeFrame =
|
||||||
|
err.loc &&
|
||||||
|
generateCodeFrame(
|
||||||
|
template as string,
|
||||||
|
err.loc.start.offset,
|
||||||
|
err.loc.end.offset
|
||||||
|
)
|
||||||
|
warn(codeFrame ? `${message}\n${codeFrame}` : message)
|
||||||
|
}
|
||||||
|
|
||||||
// The wildcard import results in a huge object with every export
|
// The wildcard import results in a huge object with every export
|
||||||
// with keys that cannot be mangled, and can be quite heavy size-wise.
|
// with keys that cannot be mangled, and can be quite heavy size-wise.
|
||||||
// In the global build we know `Vue` is available globally so we can avoid
|
// In the global build we know `Vue` is available globally so we can avoid
|
||||||
|
Loading…
x
Reference in New Issue
Block a user