From: 三咲智子 Kevin Deng Date: Wed, 13 Nov 2024 00:21:16 +0000 (+0800) Subject: refactor(compiler-vapor): drop browser build X-Git-Tag: v3.6.0-alpha.1~16^2~295 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eed7d1d4fd06e69ce30b99896b718578f17ed5b3;p=thirdparty%2Fvuejs%2Fcore.git refactor(compiler-vapor): drop browser build --- diff --git a/package.json b/package.json index 9487fbdbd0..d392d187e8 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 083860666c..0000000000 --- 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 4c9270e178..d46a1ab7ef 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 f35a060736..bc51e5c2c3 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 b1b1ad7ac3..3ccd32cba7 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 4b5701246e..7b298ef0fb 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 579d507e86..9f3b8ad2ec 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 05bcb12dfe..7ccb64004c 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 02a41015b0..dc56eb34b4 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 e3bbe6e1c5..0be18bf1ae 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 b6310d4e9e..a304e6a4a6 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,