diff --git a/packages/vite-plugin-uni/src/index.ts b/packages/vite-plugin-uni/src/index.ts index eee1c8b2a50e1f2066a5c3d4ff3ec644be694f1a..4d1c3d74a0c7fe9f33363013eb1b91d87a436985 100644 --- a/packages/vite-plugin-uni/src/index.ts +++ b/packages/vite-plugin-uni/src/index.ts @@ -1,3 +1,4 @@ +import fs from 'fs' import path from 'path' import debug from 'debug' import type { Plugin, ResolvedConfig, ViteDevServer } from 'vite' @@ -9,6 +10,7 @@ import legacyPlugin from '@vitejs/plugin-legacy' import { CopyOptions, + emptyDir, initModuleAlias, initPreContext, parsePagesJsonOnce, @@ -67,6 +69,8 @@ export interface VitePluginUniResolvedOptions extends VitePluginUniOptions { export { runDev, runBuild } from './cli/action' +let isFirst = true + export default function uniPlugin( rawOptions: VitePluginUniOptions = {} ): Plugin[] { @@ -181,13 +185,23 @@ export default function uniPlugin( } if (process.env.SOURCEMAP === 'true') { + // 清空之前的 sourcemap 目录 + const sourceMapPath = resolveSourceMapPath() + if (isFirst) { + // 避免重复清空 + isFirst = false + if (fs.existsSync(sourceMapPath)) { + emptyDir(sourceMapPath) + } + } + plugins.push( uniMovePlugin({ apply: 'build', enforce: 'post', cwd: process.env.UNI_OUTPUT_DIR, pattern: '**/*.js.map', - dest: resolveSourceMapPath(), + dest: sourceMapPath, }) ) } diff --git a/packages/vite-plugin-uni/src/plugins/move.ts b/packages/vite-plugin-uni/src/plugins/move.ts index 4d8c62eca43a72e16a2eee1b162da1d515d829cd..879f570fcce3daefd3cbde3ad14517403661c385 100644 --- a/packages/vite-plugin-uni/src/plugins/move.ts +++ b/packages/vite-plugin-uni/src/plugins/move.ts @@ -38,7 +38,6 @@ export function uniMovePlugin({ cwd, }) .map((filename) => { - fs.removeSync(dest) return fs.move( path.resolve(cwd, filename), path.resolve(dest, filename),