// Global compile-time constants
declare var __DEV__: boolean
-declare var __COMPAT__: boolean
declare var __JSDOM__: boolean
+
+// Feature flags
+declare var __FEATURE_OPTIONS__: boolean
+declare var __FEATURE_PRODUCTION_TIP__: boolean
// TODO this package will be the "full-build" that includes both the runtime
// and the compiler
export * from '@vue/runtime-dom'
+
+if (__FEATURE_PRODUCTION_TIP__) {
+ console[console.info ? 'info' : 'log'](
+ `You are running a development build of Vue.\n` +
+ `Make sure to use the production build (*.prod.js) when deploying for production.`
+ )
+}
const isGlobalBuild = /\.global(\.prod)?\.js$/.test(output.file)
const isBunlderESMBuild = /\.esm\.js$/.test(output.file)
const isBrowserESMBuild = /esm-browser(\.prod)?\.js$/.test(output.file)
- const isCompat = /dist\/vue\./.test(output.file)
if (isGlobalBuild) {
output.name = packageOptions.name
plugins: [
tsPlugin,
aliasPlugin,
- createReplacePlugin(isProductionBuild, isBunlderESMBuild, isCompat),
+ createReplacePlugin(
+ isProductionBuild,
+ isBunlderESMBuild,
+ isGlobalBuild || isBrowserESMBuild
+ ),
...plugins
],
output,
}
}
-function createReplacePlugin(isProduction, isBunlderESMBuild, isCompat) {
+function createReplacePlugin(isProduction, isBunlderESMBuild, isBrowserBuild) {
return replace({
__DEV__: isBunlderESMBuild
? // preserve to be handled by bundlers
`process.env.NODE_ENV !== 'production'`
: // hard coded dev/prod builds
!isProduction,
- // compatibility builds
- __COMPAT__: !!packageOptions.compat,
+ // show production tip?
+ // should only do this for dev AND browser-targeting builds.
+ __FEATURE_PRODUCTION_TIP__: !isProduction && isBrowserBuild,
+ // support options?
+ // the lean build drops options related code with buildOptions.lean: true
+ __FEATURE_OPTIONS__: !packageOptions.lean,
// this is only used during tests
__JSDOM__: false
})