From eed7d1d4fd06e69ce30b99896b718578f17ed5b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90=20Kevin=20Deng?= Date: Wed, 13 Nov 2024 08:21:16 +0800 Subject: [PATCH] refactor(compiler-vapor): drop browser build --- package.json | 2 +- packages/compiler-vapor/index.js | 7 ----- packages/compiler-vapor/package.json | 22 +++++++++------ packages/compiler-vapor/src/compile.ts | 14 ++-------- packages/compiler-vapor/src/errors.ts | 2 +- .../src/generators/expression.ts | 1 - .../compiler-vapor/src/generators/utils.ts | 4 +-- .../src/transforms/transformElement.ts | 27 +++++++++---------- .../compiler-vapor/src/transforms/vBind.ts | 11 +++----- .../compiler-vapor/src/transforms/vModel.ts | 1 - packages/compiler-vapor/src/utils.ts | 2 +- 11 files changed, 37 insertions(+), 56 deletions(-) delete mode 100644 packages/compiler-vapor/index.js diff --git a/package.json b/package.json index 9487fbdbd..d392d187e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build-dts": "tsc -p tsconfig.build.json --noCheck && rollup -c rollup.dts.config.js", "clean": "rimraf --glob packages/*/dist temp .eslintcache", "size": "run-s \"size-*\" && node scripts/usage-size.js", - "size-global": "node scripts/build.js vue vue-vapor runtime-dom runtime-vapor compiler-dom compiler-vapor -f global -p --size", + "size-global": "node scripts/build.js vue vue-vapor runtime-dom runtime-vapor compiler-dom -f global -p --size", "size-esm-runtime": "node scripts/build.js vue vue-vapor -f esm-bundler-runtime", "size-esm": "node scripts/build.js runtime-shared runtime-dom runtime-vapor runtime-core reactivity shared -f esm-bundler", "check": "tsc --incremental --noEmit", diff --git a/packages/compiler-vapor/index.js b/packages/compiler-vapor/index.js deleted file mode 100644 index 083860666..000000000 --- a/packages/compiler-vapor/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/compiler-vapor.cjs.prod.js') -} else { - module.exports = require('./dist/compiler-vapor.cjs.js') -} diff --git a/packages/compiler-vapor/package.json b/packages/compiler-vapor/package.json index 4c9270e17..d46a1ab7e 100644 --- a/packages/compiler-vapor/package.json +++ b/packages/compiler-vapor/package.json @@ -5,22 +5,28 @@ "main": "index.js", "module": "dist/compiler-vapor.esm-bundler.js", "types": "dist/compiler-vapor.d.ts", - "unpkg": "dist/compiler-vapor.global.js", - "jsdelivr": "dist/compiler-vapor.global.js", "files": [ - "index.js", "dist" ], "sideEffects": false, + "exports": { + ".": { + "types": "./dist/compiler-vapor.d.ts", + "node": "./dist/compiler-vapor.cjs.js", + "module": "./dist/compiler-vapor.esm-browser.js", + "import": "./dist/compiler-vapor.esm-browser.js", + "require": "./dist/compiler-vapor.cjs.js" + }, + "./*": "./*" + }, "buildOptions": { "name": "VueCompilerVapor", - "compat": true, "formats": [ - "esm-bundler", - "esm-browser", "cjs", - "global" - ] + "esm-browser" + ], + "prod": false, + "enableNonBrowserBranches": true }, "repository": { "type": "git", diff --git a/packages/compiler-vapor/src/compile.ts b/packages/compiler-vapor/src/compile.ts index f35a06073..bc51e5c2c 100644 --- a/packages/compiler-vapor/src/compile.ts +++ b/packages/compiler-vapor/src/compile.ts @@ -40,17 +40,7 @@ export function compile( ): VaporCodegenResult { const onError = options.onError || defaultOnError const isModuleMode = options.mode === 'module' - /* istanbul ignore if */ - if (__BROWSER__) { - if (options.prefixIdentifiers === true) { - onError(createCompilerError(ErrorCodes.X_PREFIX_ID_NOT_SUPPORTED)) - } else if (isModuleMode) { - onError(createCompilerError(ErrorCodes.X_MODULE_MODE_NOT_SUPPORTED)) - } - } - - const prefixIdentifiers = - !__BROWSER__ && (options.prefixIdentifiers === true || isModuleMode) + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode if (options.scopeId && !isModuleMode) { onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED)) @@ -63,7 +53,7 @@ export function compile( const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers) - if (!__BROWSER__ && options.isTS) { + if (options.isTS) { const { expressionPlugins } = options if (!expressionPlugins || !expressionPlugins.includes('typescript')) { resolvedOptions.expressionPlugins = [ diff --git a/packages/compiler-vapor/src/errors.ts b/packages/compiler-vapor/src/errors.ts index b1b1ad7ac..3ccd32cba 100644 --- a/packages/compiler-vapor/src/errors.ts +++ b/packages/compiler-vapor/src/errors.ts @@ -15,7 +15,7 @@ export function createVaporCompilerError( return createCompilerError( code, loc, - __DEV__ || !__BROWSER__ ? VaporErrorMessages : undefined, + VaporErrorMessages, ) as VaporCompilerError } diff --git a/packages/compiler-vapor/src/generators/expression.ts b/packages/compiler-vapor/src/generators/expression.ts index 4b5701246..7b298ef0f 100644 --- a/packages/compiler-vapor/src/generators/expression.ts +++ b/packages/compiler-vapor/src/generators/expression.ts @@ -28,7 +28,6 @@ export function genExpression( } if ( - __BROWSER__ || !prefixIdentifiers || !node.content.trim() || // there was a parsing error diff --git a/packages/compiler-vapor/src/generators/utils.ts b/packages/compiler-vapor/src/generators/utils.ts index 579d507e8..9f3b8ad2e 100644 --- a/packages/compiler-vapor/src/generators/utils.ts +++ b/packages/compiler-vapor/src/generators/utils.ts @@ -102,7 +102,7 @@ export function codeFragmentToString( } = context let map: CodegenSourceMapGenerator | undefined - if (!__BROWSER__ && sourceMap) { + if (sourceMap) { // lazy require source-map implementation, only in non-browser builds map = new SourceMapGenerator() as unknown as CodegenSourceMapGenerator map.setSourceContent(filename, context.ir.source) @@ -136,7 +136,7 @@ export function codeFragmentToString( let [code, newlineIndex = NewlineType.None, loc, name] = frag codegen += code - if (!__BROWSER__ && map) { + if (map) { if (loc) addMapping(loc.start, name) if (newlineIndex === NewlineType.Unknown) { // multiple newlines, full iteration diff --git a/packages/compiler-vapor/src/transforms/transformElement.ts b/packages/compiler-vapor/src/transforms/transformElement.ts index 05bcb12df..7ccb64004 100644 --- a/packages/compiler-vapor/src/transforms/transformElement.ts +++ b/packages/compiler-vapor/src/transforms/transformElement.ts @@ -74,21 +74,21 @@ function transformComponentElement( ) { let asset = true - if (!__BROWSER__) { - const fromSetup = resolveSetupReference(tag, context) - if (fromSetup) { - tag = fromSetup + const fromSetup = resolveSetupReference(tag, context) + if (fromSetup) { + tag = fromSetup + asset = false + } + + const dotIndex = tag.indexOf('.') + if (dotIndex > 0) { + const ns = resolveSetupReference(tag.slice(0, dotIndex), context) + if (ns) { + tag = ns + tag.slice(dotIndex) asset = false } - const dotIndex = tag.indexOf('.') - if (dotIndex > 0) { - const ns = resolveSetupReference(tag.slice(0, dotIndex), context) - if (ns) { - tag = ns + tag.slice(dotIndex) - asset = false - } - } } + if (asset) { context.component.add(tag) } @@ -304,8 +304,7 @@ function transformProp( } if (!isBuiltInDirective(name)) { - const fromSetup = - !__BROWSER__ && resolveSetupReference(`v-${name}`, context) + const fromSetup = resolveSetupReference(`v-${name}`, context) if (fromSetup) { name = fromSetup } else { diff --git a/packages/compiler-vapor/src/transforms/vBind.ts b/packages/compiler-vapor/src/transforms/vBind.ts index 02a41015b..dc56eb34b 100644 --- a/packages/compiler-vapor/src/transforms/vBind.ts +++ b/packages/compiler-vapor/src/transforms/vBind.ts @@ -40,14 +40,9 @@ export const transformVBind: DirectiveTransform = (dir, node, context) => { if (!exp) exp = normalizeBindShorthand(arg, context) if (!exp.content.trim()) { - if (!__BROWSER__) { - // #10280 only error against empty expression in non-browser build - // because :foo in in-DOM templates will be parsed into :foo="" by the - // browser - context.options.onError( - createCompilerError(ErrorCodes.X_V_BIND_NO_EXPRESSION, loc), - ) - } + context.options.onError( + createCompilerError(ErrorCodes.X_V_BIND_NO_EXPRESSION, loc), + ) exp = createSimpleExpression('', true, loc) } diff --git a/packages/compiler-vapor/src/transforms/vModel.ts b/packages/compiler-vapor/src/transforms/vModel.ts index e3bbe6e1c..0be18bf1a 100644 --- a/packages/compiler-vapor/src/transforms/vModel.ts +++ b/packages/compiler-vapor/src/transforms/vModel.ts @@ -46,7 +46,6 @@ export const transformVModel: DirectiveTransform = (dir, node, context) => { const expString = exp.content const maybeRef = - !__BROWSER__ && context.options.inline && (bindingType === BindingTypes.SETUP_LET || bindingType === BindingTypes.SETUP_REF || diff --git a/packages/compiler-vapor/src/utils.ts b/packages/compiler-vapor/src/utils.ts index b6310d4e9..a304e6a4a 100644 --- a/packages/compiler-vapor/src/utils.ts +++ b/packages/compiler-vapor/src/utils.ts @@ -60,7 +60,7 @@ export function resolveExpression( export function getLiteralExpressionValue( exp: SimpleExpressionNode, ): number | string | boolean | null { - if (!__BROWSER__ && exp.ast) { + if (exp.ast) { if ( ['StringLiteral', 'NumericLiteral', 'BigIntLiteral'].includes( exp.ast.type,