feat(build): provide more specific warnings for runtime compilation
close #1004
This commit is contained in:
parent
171cfa404f
commit
e954ba21f0
@ -5,8 +5,9 @@ module.exports = {
|
|||||||
__TEST__: true,
|
__TEST__: true,
|
||||||
__VERSION__: require('./package.json').version,
|
__VERSION__: require('./package.json').version,
|
||||||
__BROWSER__: false,
|
__BROWSER__: false,
|
||||||
__RUNTIME_COMPILE__: true,
|
|
||||||
__GLOBAL__: false,
|
__GLOBAL__: false,
|
||||||
|
__ESM_BUNDLER__: true,
|
||||||
|
__ESM_BROWSER__: false,
|
||||||
__NODE_JS__: true,
|
__NODE_JS__: true,
|
||||||
__FEATURE_OPTIONS__: true,
|
__FEATURE_OPTIONS__: true,
|
||||||
__FEATURE_SUSPENSE__: true
|
__FEATURE_SUSPENSE__: true
|
||||||
|
3
packages/global.d.ts
vendored
3
packages/global.d.ts
vendored
@ -2,8 +2,9 @@
|
|||||||
declare var __DEV__: boolean
|
declare var __DEV__: boolean
|
||||||
declare var __TEST__: boolean
|
declare var __TEST__: boolean
|
||||||
declare var __BROWSER__: boolean
|
declare var __BROWSER__: boolean
|
||||||
declare var __RUNTIME_COMPILE__: boolean
|
|
||||||
declare var __GLOBAL__: boolean
|
declare var __GLOBAL__: boolean
|
||||||
|
declare var __ESM_BUNDLER__: boolean
|
||||||
|
declare var __ESM_BROWSER__: boolean
|
||||||
declare var __NODE_JS__: boolean
|
declare var __NODE_JS__: boolean
|
||||||
declare var __COMMIT__: string
|
declare var __COMMIT__: string
|
||||||
declare var __VERSION__: string
|
declare var __VERSION__: string
|
||||||
|
@ -451,9 +451,15 @@ function finishComponentSetup(
|
|||||||
/* istanbul ignore if */
|
/* istanbul ignore if */
|
||||||
if (!compile && Component.template) {
|
if (!compile && Component.template) {
|
||||||
warn(
|
warn(
|
||||||
`Component provides template but the build of Vue you are running ` +
|
`Component provided template option but ` +
|
||||||
`does not support runtime template compilation. Either use the ` +
|
`runtime compilation is not supported in this build of Vue.` +
|
||||||
`full build or pre-compile the template using Vue CLI.`
|
(__ESM_BUNDLER__
|
||||||
|
? ` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`
|
||||||
|
: __ESM_BROWSER__
|
||||||
|
? ` Use "vue.esm-browser.js" instead.`
|
||||||
|
: __GLOBAL__
|
||||||
|
? ` Use "vue.global.js" instead.`
|
||||||
|
: ``) /* should not happen */
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
warn(`Component is missing template or render function.`)
|
warn(`Component is missing template or render function.`)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// 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 './devCheck'
|
||||||
import { compile, CompilerOptions, CompilerError } from '@vue/compiler-dom'
|
import { compile, CompilerOptions, CompilerError } from '@vue/compiler-dom'
|
||||||
import { registerRuntimeCompiler, RenderFunction, warn } from '@vue/runtime-dom'
|
import { registerRuntimeCompiler, RenderFunction, warn } from '@vue/runtime-dom'
|
||||||
import * as runtimeDom from '@vue/runtime-dom'
|
import * as runtimeDom from '@vue/runtime-dom'
|
||||||
@ -72,5 +73,3 @@ registerRuntimeCompiler(compileToFunction)
|
|||||||
|
|
||||||
export { compileToFunction as compile }
|
export { compileToFunction as compile }
|
||||||
export * from '@vue/runtime-dom'
|
export * from '@vue/runtime-dom'
|
||||||
|
|
||||||
import './devCheck'
|
|
||||||
|
@ -1,6 +1,21 @@
|
|||||||
// This entry exports the runtime only, and is built as
|
// This entry exports the runtime only, and is built as
|
||||||
// `dist/vue.esm-bundler.js` which is used by default for bundlers.
|
// `dist/vue.esm-bundler.js` which is used by default for bundlers.
|
||||||
|
import './devCheck'
|
||||||
|
import { warn } from '@vue/runtime-dom'
|
||||||
|
|
||||||
export * from '@vue/runtime-dom'
|
export * from '@vue/runtime-dom'
|
||||||
|
|
||||||
import './devCheck'
|
export const compile = () => {
|
||||||
|
if (__DEV__) {
|
||||||
|
warn(
|
||||||
|
`Runtime compilation is not supported in this build of Vue.` +
|
||||||
|
(__ESM_BUNDLER__
|
||||||
|
? ` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`
|
||||||
|
: __ESM_BROWSER__
|
||||||
|
? ` Use "vue.esm-browser.js" instead.`
|
||||||
|
: __GLOBAL__
|
||||||
|
? ` Use "vue.global.js" instead.`
|
||||||
|
: ``) /* should not happen */
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -141,6 +141,7 @@ function createConfig(format, output, plugins = []) {
|
|||||||
createReplacePlugin(
|
createReplacePlugin(
|
||||||
isProductionBuild,
|
isProductionBuild,
|
||||||
isBundlerESMBuild,
|
isBundlerESMBuild,
|
||||||
|
isBrowserESMBuild,
|
||||||
// isBrowserBuild?
|
// isBrowserBuild?
|
||||||
(isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) &&
|
(isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) &&
|
||||||
!packageOptions.enableNonBrowserBranches,
|
!packageOptions.enableNonBrowserBranches,
|
||||||
@ -162,6 +163,7 @@ function createConfig(format, output, plugins = []) {
|
|||||||
function createReplacePlugin(
|
function createReplacePlugin(
|
||||||
isProduction,
|
isProduction,
|
||||||
isBundlerESMBuild,
|
isBundlerESMBuild,
|
||||||
|
isBrowserESMBuild,
|
||||||
isBrowserBuild,
|
isBrowserBuild,
|
||||||
isGlobalBuild,
|
isGlobalBuild,
|
||||||
isNodeBuild
|
isNodeBuild
|
||||||
@ -179,6 +181,8 @@ function createReplacePlugin(
|
|||||||
// If the build is expected to run directly in the browser (global / esm builds)
|
// If the build is expected to run directly in the browser (global / esm builds)
|
||||||
__BROWSER__: isBrowserBuild,
|
__BROWSER__: isBrowserBuild,
|
||||||
__GLOBAL__: isGlobalBuild,
|
__GLOBAL__: isGlobalBuild,
|
||||||
|
__ESM_BUNDLER__: isBundlerESMBuild,
|
||||||
|
__ESM_BROWSER__: isBrowserESMBuild,
|
||||||
// is targeting Node (SSR)?
|
// is targeting Node (SSR)?
|
||||||
__NODE_JS__: isNodeBuild,
|
__NODE_JS__: isNodeBuild,
|
||||||
__FEATURE_OPTIONS__: true,
|
__FEATURE_OPTIONS__: true,
|
||||||
|
Loading…
Reference in New Issue
Block a user