From 96eb0764962c80586d14f990f846cd1d9fb690b9 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Mon, 11 Aug 2025 00:36:59 +0800 Subject: [PATCH] build: fix tsdown build config --- cli/{tsdown.config.ts => tsdown.config.mjs} | 3 +-- .../{tsdown.config.ts => tsdown.config.mjs} | 15 +++++++++------ .../{tsdown.config.ts => tsdown.config.mjs} | 16 ++++++++++------ .../{tsdown.config.ts => tsdown.config.mjs} | 17 ++++++++++------- scripts/{tsdown-args.ts => tsdown-args.mjs} | 17 ++++++++++++----- theme/{tsdown.config.ts => tsdown.config.mjs} | 19 +++++++++++-------- 6 files changed, 53 insertions(+), 34 deletions(-) rename cli/{tsdown.config.ts => tsdown.config.mjs} (75%) rename plugins/plugin-fonts/{tsdown.config.ts => tsdown.config.mjs} (71%) rename plugins/plugin-md-power/{tsdown.config.ts => tsdown.config.mjs} (84%) rename plugins/plugin-search/{tsdown.config.ts => tsdown.config.mjs} (83%) rename scripts/{tsdown-args.ts => tsdown-args.mjs} (66%) rename theme/{tsdown.config.ts => tsdown.config.mjs} (89%) diff --git a/cli/tsdown.config.ts b/cli/tsdown.config.mjs similarity index 75% rename from cli/tsdown.config.ts rename to cli/tsdown.config.mjs index f4d57f77..8736258d 100644 --- a/cli/tsdown.config.ts +++ b/cli/tsdown.config.mjs @@ -1,4 +1,3 @@ -import type { Options } from 'tsdown' import { defineConfig } from 'tsdown' export default defineConfig({ @@ -7,4 +6,4 @@ export default defineConfig({ dts: true, format: 'esm', sourcemap: false, -}) as Options +}) diff --git a/plugins/plugin-fonts/tsdown.config.ts b/plugins/plugin-fonts/tsdown.config.mjs similarity index 71% rename from plugins/plugin-fonts/tsdown.config.ts rename to plugins/plugin-fonts/tsdown.config.mjs index d85e5d9b..e0723f81 100644 --- a/plugins/plugin-fonts/tsdown.config.ts +++ b/plugins/plugin-fonts/tsdown.config.mjs @@ -1,19 +1,22 @@ -import type { Options, UserConfigFn } from 'tsdown' import { defineConfig } from 'tsdown' -import { argv } from '../../scripts/tsdown-args.js' +import { argv } from '../../scripts/tsdown-args.mjs' -const clientExternal: (string | RegExp)[] = [ +/** @import {Options} from 'tsdown' */ + +const clientExternal = [ /.*\.vue$/, /.*\.css$/, ] export default defineConfig(() => { - const DEFAULT_OPTIONS: Options = { + /** @type {Options} */ + const DEFAULT_OPTIONS = { dts: true, sourcemap: false, format: 'esm', } - const options: Options[] = [] + /** @type {Options[]} */ + const options = [] if (argv.node) { options.push({ @@ -37,4 +40,4 @@ export default defineConfig(() => { ]) } return options -}) as UserConfigFn +}) diff --git a/plugins/plugin-md-power/tsdown.config.ts b/plugins/plugin-md-power/tsdown.config.mjs similarity index 84% rename from plugins/plugin-md-power/tsdown.config.ts rename to plugins/plugin-md-power/tsdown.config.mjs index e6f71afa..d3d83dfb 100644 --- a/plugins/plugin-md-power/tsdown.config.ts +++ b/plugins/plugin-md-power/tsdown.config.mjs @@ -1,6 +1,7 @@ -import type { Options, UserConfigFn } from 'tsdown' import { defineConfig } from 'tsdown' -import { argv } from '../../scripts/tsdown-args.js' +import { argv } from '../../scripts/tsdown-args.mjs' + +/** @import {Options} from 'tsdown' */ const config = [ { dir: 'composables', files: ['codeRepl.ts', 'pdf.ts', 'rustRepl.ts', 'size.ts', 'audio.ts', 'demo.ts'] }, @@ -17,13 +18,16 @@ const clientExternal = [ ] export default defineConfig((cli) => { - const DEFAULT_OPTIONS: Options = { + /** @type {Options} */ + const DEFAULT_OPTIONS = { dts: true, sourcemap: false, format: 'esm', clean: !cli.watch, } - const options: Options[] = [] + + /** @type {Options[]} */ + const options = [] // shared options.push({ @@ -48,7 +52,7 @@ export default defineConfig((cli) => { entry: files.map(file => `./src/client/${dir}/${file}`), outDir: `./lib/client/${dir}`, external: clientExternal, - }) as Options)) + }))) } return options -}) as UserConfigFn +}) diff --git a/plugins/plugin-search/tsdown.config.ts b/plugins/plugin-search/tsdown.config.mjs similarity index 83% rename from plugins/plugin-search/tsdown.config.ts rename to plugins/plugin-search/tsdown.config.mjs index 702b5ec5..4b21500d 100644 --- a/plugins/plugin-search/tsdown.config.ts +++ b/plugins/plugin-search/tsdown.config.mjs @@ -1,12 +1,13 @@ -import type { Options, UserConfigFn } from 'tsdown' import { defineConfig } from 'tsdown' -import { argv } from '../../scripts/tsdown-args.js' +import { argv } from '../../scripts/tsdown-args.mjs' -const sharedExternal: (string | RegExp)[] = [ +/** @import {Options} from 'tsdown' */ + +const sharedExternal = [ /.*\/shared\/index\.js$/, ] -const clientExternal: (string | RegExp)[] = [ +const clientExternal = [ ...sharedExternal, /^@internal/, /.*\.vue$/, @@ -14,13 +15,15 @@ const clientExternal: (string | RegExp)[] = [ ] export default defineConfig(() => { - const DEFAULT_OPTIONS: Options = { + /** @type {Options} */ + const DEFAULT_OPTIONS = { dts: true, sourcemap: false, format: 'esm', } - const options: Options[] = [] + /** @type {Options[]} */ + const options = [] // shared options.push({ @@ -77,4 +80,4 @@ export default defineConfig(() => { } return options -}) as UserConfigFn +}) diff --git a/scripts/tsdown-args.ts b/scripts/tsdown-args.mjs similarity index 66% rename from scripts/tsdown-args.ts rename to scripts/tsdown-args.mjs index 5b4386a7..b389aaaa 100644 --- a/scripts/tsdown-args.ts +++ b/scripts/tsdown-args.mjs @@ -1,10 +1,16 @@ import process from 'node:process' import minimist from 'minimist' -interface ArgvOptions { - client: boolean - node: boolean -} +// interface ArgvOptions { +// client: boolean +// node: boolean +// } + +/** + * @typedef {object} ArgvOptions + * @property {boolean} client - 是否构建客户端 + * @property {boolean} node - 是否构建 node 端 + */ const rawArgv = process.argv.slice(2) const tsupArgv = rawArgv.includes('--') ? rawArgv.slice(rawArgv.indexOf('--') + 1) : [] @@ -24,7 +30,8 @@ const parsed = tsupArgv.length all: true, } -export const argv: ArgvOptions = { +/** @type {ArgvOptions} */ +export const argv = { client: parsed.client || parsed.all, node: parsed.node || parsed.all, } diff --git a/theme/tsdown.config.ts b/theme/tsdown.config.mjs similarity index 89% rename from theme/tsdown.config.ts rename to theme/tsdown.config.mjs index 9097aeeb..a6c19381 100644 --- a/theme/tsdown.config.ts +++ b/theme/tsdown.config.mjs @@ -1,15 +1,16 @@ -import type { Options, UserConfigFn } from 'tsdown' import fs from 'node:fs' import path from 'node:path' import process from 'node:process' import { defineConfig } from 'tsdown' -import { argv } from '../scripts/tsdown-args.js' +import { argv } from '../scripts/tsdown-args.mjs' -const sharedExternal: (string | RegExp)[] = [ +/** @import {Options} from 'tsdown' */ + +const sharedExternal = [ /.*\/shared\/index\.js$/, ] -const clientExternal: (string | RegExp)[] = [ +const clientExternal = [ ...sharedExternal, /.*\.vue$/, /^@internal/, @@ -23,7 +24,8 @@ const featuresComposables = fs.readdirSync( ) export default defineConfig((cli) => { - const DEFAULT_OPTIONS: Options = { + /** @type {Options} */ + const DEFAULT_OPTIONS = { dts: true, sourcemap: false, watch: cli.watch, @@ -31,7 +33,8 @@ export default defineConfig((cli) => { silent: !!cli.watch, clean: !cli.watch, } - const options: Options[] = [] + /** @type {Options[]} */ + const options = [] // shared options.push({ @@ -110,7 +113,7 @@ export default defineConfig((cli) => { ...featuresComposables.map(file => `./${file.replace('.ts', '.js')}`), ], })), - ] as Options[]) + ]) } return options -}) as UserConfigFn +})