dx(runtime-dom): warn config.isCustomElement usage in runtime-only build (#2945)
This commit is contained in:
parent
d0ea74556f
commit
354966204e
@ -653,6 +653,9 @@ type CompileFunction = (
|
|||||||
|
|
||||||
let compile: CompileFunction | undefined
|
let compile: CompileFunction | undefined
|
||||||
|
|
||||||
|
// dev only
|
||||||
|
export const isRuntimeOnly = () => !compile
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For runtime-dom to register the compiler.
|
* For runtime-dom to register the compiler.
|
||||||
* Note the exported method uses any to avoid d.ts relying on the compiler types.
|
* Note the exported method uses any to avoid d.ts relying on the compiler types.
|
||||||
|
@ -87,7 +87,7 @@ export {
|
|||||||
resolveDynamicComponent
|
resolveDynamicComponent
|
||||||
} from './helpers/resolveAssets'
|
} from './helpers/resolveAssets'
|
||||||
// For integration with runtime compiler
|
// For integration with runtime compiler
|
||||||
export { registerRuntimeCompiler } from './component'
|
export { registerRuntimeCompiler, isRuntimeOnly } from './component'
|
||||||
export {
|
export {
|
||||||
useTransitionState,
|
useTransitionState,
|
||||||
resolveTransitionHooks,
|
resolveTransitionHooks,
|
||||||
|
@ -7,7 +7,8 @@ import {
|
|||||||
Renderer,
|
Renderer,
|
||||||
HydrationRenderer,
|
HydrationRenderer,
|
||||||
App,
|
App,
|
||||||
RootHydrateFunction
|
RootHydrateFunction,
|
||||||
|
isRuntimeOnly
|
||||||
} from '@vue/runtime-core'
|
} from '@vue/runtime-core'
|
||||||
import { nodeOps } from './nodeOps'
|
import { nodeOps } from './nodeOps'
|
||||||
import { patchProp, forcePatchProp } from './patchProp'
|
import { patchProp, forcePatchProp } from './patchProp'
|
||||||
@ -55,6 +56,7 @@ export const createApp = ((...args) => {
|
|||||||
|
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
injectNativeTagCheck(app)
|
injectNativeTagCheck(app)
|
||||||
|
injectCustomElementCheck(app)
|
||||||
}
|
}
|
||||||
|
|
||||||
const { mount } = app
|
const { mount } = app
|
||||||
@ -83,6 +85,7 @@ export const createSSRApp = ((...args) => {
|
|||||||
|
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
injectNativeTagCheck(app)
|
injectNativeTagCheck(app)
|
||||||
|
injectCustomElementCheck(app)
|
||||||
}
|
}
|
||||||
|
|
||||||
const { mount } = app
|
const { mount } = app
|
||||||
@ -105,6 +108,25 @@ function injectNativeTagCheck(app: App) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// dev only
|
||||||
|
function injectCustomElementCheck(app: App) {
|
||||||
|
if (isRuntimeOnly()) {
|
||||||
|
const value = app.config.isCustomElement
|
||||||
|
Object.defineProperty(app.config, 'isCustomElement', {
|
||||||
|
get() {
|
||||||
|
return value
|
||||||
|
},
|
||||||
|
set() {
|
||||||
|
warn(
|
||||||
|
`The \`isCustomElement\` config option is only respected when using the runtime compiler.` +
|
||||||
|
`If you are using the runtime-only build, \`isCustomElement\` must be passed to \`@vue/compiler-dom\` in the build setup instead` +
|
||||||
|
`- for example, via the \`compilerOptions\` option in vue-loader: https://vue-loader.vuejs.org/options.html#compileroptions.`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function normalizeContainer(
|
function normalizeContainer(
|
||||||
container: Element | ShadowRoot | string
|
container: Element | ShadowRoot | string
|
||||||
): Element | null {
|
): Element | null {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user