From ff23f7d44d2de383c3ce540c4ed27c68fabd1fa2 Mon Sep 17 00:00:00 2001 From: alex8088 <244096523@qq.com> Date: Sun, 21 Apr 2024 21:46:06 +0800 Subject: [PATCH] chore: use rollup-plugin-rm to clean dist --- package.json | 1 + pnpm-lock.yaml | 11 +++++++++++ rollup.config.ts | 25 ++++--------------------- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index f2c6b5f..7d9df1b 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "prettier": "^3.1.0", "rollup": "^4.6.1", "rollup-plugin-dts": "^6.1.0", + "rollup-plugin-rm": "^1.0.2", "simple-git-hooks": "^2.9.0", "tslib": "^2.6.2", "typescript": "^5.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49cc646..3bcce0f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,6 +67,9 @@ devDependencies: rollup-plugin-dts: specifier: ^6.1.0 version: 6.1.0(rollup@4.6.1)(typescript@5.3.3) + rollup-plugin-rm: + specifier: ^1.0.2 + version: 1.0.2(rollup@4.6.1) simple-git-hooks: specifier: ^2.9.0 version: 2.9.0 @@ -2216,6 +2219,14 @@ packages: '@babel/code-frame': 7.23.5 dev: true + /rollup-plugin-rm@1.0.2(rollup@4.6.1): + resolution: {integrity: sha512-RSUFFibfkCvIeQrTg7TLs59m6S//qcmDfTNqgQ2Pd9BlABd/q74ymmg5936h0vfnjrFHhale/+f+efgp7deLEg==} + peerDependencies: + rollup: ^3.0.0||^4.0.0 + dependencies: + rollup: 4.6.1 + dev: true + /rollup@4.6.1: resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} diff --git a/rollup.config.ts b/rollup.config.ts index 6872f0d..44e0af0 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -1,33 +1,16 @@ import { createRequire } from 'node:module' -import fs from 'node:fs/promises' -import { type Plugin, defineConfig } from 'rollup' +import { defineConfig } from 'rollup' import ts from '@rollup/plugin-typescript' import resolve from '@rollup/plugin-node-resolve' import json from '@rollup/plugin-json' import dts from 'rollup-plugin-dts' +import rm from 'rollup-plugin-rm' const require = createRequire(import.meta.url) const pkg = require('./package.json') const external = ['esbuild', ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {})] -function clean(when: 'buildStart' | 'buildEnd', target: string): Plugin { - const _clean = async (target): Promise => { - await fs.rm(target, { recursive: true, force: true }).catch(() => {}) - } - return { - name: 'clean', - buildStart: async (): Promise => { - if (when !== 'buildStart') return - await _clean(target) - }, - buildEnd: async (): Promise => { - if (when !== 'buildEnd') return - await _clean(target) - } - } -} - export default defineConfig([ { input: ['src/index.ts', 'src/cli.ts'], @@ -47,7 +30,7 @@ export default defineConfig([ ], external, plugins: [ - clean('buildStart', 'dist'), + rm('dist', 'buildStart'), json(), ts({ compilerOptions: { rootDir: 'src', declaration: true, declarationDir: 'dist/types' } }), resolve() @@ -59,6 +42,6 @@ export default defineConfig([ { input: 'dist/types/index.d.ts', output: [{ file: pkg.types, format: 'es' }], - plugins: [dts(), clean('buildEnd', 'dist/types')] + plugins: [dts(), rm('dist/types', 'buildEnd')] } ])