1
1
import { createRequire } from 'node:module'
2
- import fs from 'node:fs/promises'
3
- import { type Plugin , defineConfig } from 'rollup'
2
+ import { defineConfig } from 'rollup'
4
3
import ts from '@rollup/plugin-typescript'
5
4
import resolve from '@rollup/plugin-node-resolve'
6
5
import json from '@rollup/plugin-json'
7
6
import dts from 'rollup-plugin-dts'
7
+ import rm from 'rollup-plugin-rm'
8
8
9
9
const require = createRequire ( import . meta. url )
10
10
const pkg = require ( './package.json' )
11
11
12
12
const external = [ 'esbuild' , ...Object . keys ( pkg . dependencies || { } ) , ...Object . keys ( pkg . peerDependencies || { } ) ]
13
13
14
- function clean ( when : 'buildStart' | 'buildEnd' , target : string ) : Plugin {
15
- const _clean = async ( target ) : Promise < void > => {
16
- await fs . rm ( target , { recursive : true , force : true } ) . catch ( ( ) => { } )
17
- }
18
- return {
19
- name : 'clean' ,
20
- buildStart : async ( ) : Promise < void > => {
21
- if ( when !== 'buildStart' ) return
22
- await _clean ( target )
23
- } ,
24
- buildEnd : async ( ) : Promise < void > => {
25
- if ( when !== 'buildEnd' ) return
26
- await _clean ( target )
27
- }
28
- }
29
- }
30
-
31
14
export default defineConfig ( [
32
15
{
33
16
input : [ 'src/index.ts' , 'src/cli.ts' ] ,
@@ -47,7 +30,7 @@ export default defineConfig([
47
30
] ,
48
31
external,
49
32
plugins : [
50
- clean ( 'buildStart ', 'dist ' ) ,
33
+ rm ( 'dist ', 'buildStart ' ) ,
51
34
json ( ) ,
52
35
ts ( { compilerOptions : { rootDir : 'src' , declaration : true , declarationDir : 'dist/types' } } ) ,
53
36
resolve ( )
@@ -59,6 +42,6 @@ export default defineConfig([
59
42
{
60
43
input : 'dist/types/index.d.ts' ,
61
44
output : [ { file : pkg . types , format : 'es' } ] ,
62
- plugins : [ dts ( ) , clean ( 'buildEnd ', 'dist/types ' ) ]
45
+ plugins : [ dts ( ) , rm ( 'dist/types ', 'buildEnd ' ) ]
63
46
}
64
47
] )
0 commit comments