@@ -2,48 +2,57 @@ import { existsSync, readFileSync } from 'node:fs'
2
2
import { resolve } from 'node:path'
3
3
import type { Plugin } from 'vite'
4
4
5
+ function copyFiles ( emit : any ) {
6
+ ; [
7
+ { path : '../../../node_modules/@vue-flow/core/dist/' , pkgName : 'vue-flow-core.mjs' } ,
8
+ {
9
+ path : '../../../node_modules/@vue-flow/background/dist/' ,
10
+ pkgName : 'vue-flow-background.mjs' ,
11
+ } ,
12
+ {
13
+ path : '../../../node_modules/@vue-flow/controls/dist/' ,
14
+ pkgName : 'vue-flow-controls.mjs' ,
15
+ } ,
16
+ {
17
+ path : '../../../node_modules/@vue-flow/minimap/dist/' ,
18
+ pkgName : 'vue-flow-minimap.mjs' ,
19
+ } ,
20
+ {
21
+ path : '../../../node_modules/@vue-flow/node-resizer/dist/' ,
22
+ pkgName : 'vue-flow-node-resizer.mjs' ,
23
+ } ,
24
+ {
25
+ path : '../../../node_modules/@vue-flow/node-toolbar/dist/' ,
26
+ pkgName : 'vue-flow-node-toolbar.mjs' ,
27
+ } ,
28
+ ] . forEach ( ( { path, pkgName } ) => {
29
+ const filePath = resolve ( __dirname , `${ path } /${ pkgName } ` )
30
+ if ( ! existsSync ( filePath ) ) {
31
+ throw new Error ( `${ pkgName } not built. ` + `Run "pnpm -w build" first.` )
32
+ }
33
+
34
+ emit ( {
35
+ type : 'asset' ,
36
+ fileName : pkgName ,
37
+ source : readFileSync ( filePath , 'utf-8' ) ,
38
+ } )
39
+
40
+ console . log ( `Copied ${ filePath } to ${ resolve ( __dirname , `../../src/public/${ pkgName } ` ) } ` )
41
+ } )
42
+
43
+ console . log ( 'Copied vue-flow files' )
44
+ }
5
45
export function copyVueFlowPlugin ( ) : Plugin {
6
46
return {
7
47
name : 'copy-vue-flow' ,
48
+ buildStart ( ) {
49
+ copyFiles ( ( file : any ) => this . emitFile ( file ) )
50
+ } ,
51
+ watchChange ( ) {
52
+ copyFiles ( ( file : any ) => this . emitFile ( file ) )
53
+ } ,
8
54
generateBundle ( ) {
9
- ; [
10
- { path : '../../../node_modules/@vue-flow/core/dist/' , pkgName : 'vue-flow-core.mjs' } ,
11
- {
12
- path : '../../../node_modules/@vue-flow/background/dist/' ,
13
- pkgName : 'vue-flow-background.mjs' ,
14
- } ,
15
- {
16
- path : '../../../node_modules/@vue-flow/controls/dist/' ,
17
- pkgName : 'vue-flow-controls.mjs' ,
18
- } ,
19
- {
20
- path : '../../../node_modules/@vue-flow/minimap/dist/' ,
21
- pkgName : 'vue-flow-minimap.mjs' ,
22
- } ,
23
- {
24
- path : '../../../node_modules/@vue-flow/node-resizer/dist/' ,
25
- pkgName : 'vue-flow-node-resizer.mjs' ,
26
- } ,
27
- {
28
- path : '../../../node_modules/@vue-flow/node-toolbar/dist/' ,
29
- pkgName : 'vue-flow-node-toolbar.mjs' ,
30
- } ,
31
- ] . forEach ( ( { path, pkgName } ) => {
32
- const filePath = resolve ( __dirname , `${ path } /${ pkgName } ` )
33
- if ( ! existsSync ( filePath ) ) {
34
- throw new Error ( `${ pkgName } not built. ` + `Run "pnpm -w build" first.` )
35
- }
36
-
37
- ; ( this as any ) . emitFile ( {
38
- type : 'asset' ,
39
- fileName : pkgName ,
40
- source : readFileSync ( filePath , 'utf-8' ) ,
41
- } )
42
-
43
- console . log ( `Copied ${ filePath } to ${ resolve ( __dirname , `../../src/public/${ pkgName } ` ) } ` )
44
- } )
45
-
46
- console . log ( 'Copied vue-flow files' )
55
+ copyFiles ( ( file : any ) => this . emitFile ( file ) )
47
56
} ,
48
57
}
49
58
}
0 commit comments