feat: production tip

This commit is contained in:
Evan You
2019-09-03 20:51:42 -04:00
parent cbc8dddd15
commit c833db9c97
3 changed files with 23 additions and 6 deletions

View File

@@ -75,7 +75,6 @@ function createConfig(output, plugins = []) {
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
@@ -112,7 +111,11 @@ function createConfig(output, plugins = []) {
plugins: [
tsPlugin,
aliasPlugin,
createReplacePlugin(isProductionBuild, isBunlderESMBuild, isCompat),
createReplacePlugin(
isProductionBuild,
isBunlderESMBuild,
isGlobalBuild || isBrowserESMBuild
),
...plugins
],
output,
@@ -124,15 +127,19 @@ function createConfig(output, plugins = []) {
}
}
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
})