diff --git a/docs/src/.vitepress/plugins/copy.ts b/docs/src/.vitepress/plugins/copy.ts index 32ed8f43..d0e41dcc 100644 --- a/docs/src/.vitepress/plugins/copy.ts +++ b/docs/src/.vitepress/plugins/copy.ts @@ -2,48 +2,57 @@ import { existsSync, readFileSync } from 'node:fs' import { resolve } from 'node:path' import type { Plugin } from 'vite' +function copyFiles(emit: any) { + ;[ + { path: '../../../node_modules/@vue-flow/core/dist/', pkgName: 'vue-flow-core.mjs' }, + { + path: '../../../node_modules/@vue-flow/background/dist/', + pkgName: 'vue-flow-background.mjs', + }, + { + path: '../../../node_modules/@vue-flow/controls/dist/', + pkgName: 'vue-flow-controls.mjs', + }, + { + path: '../../../node_modules/@vue-flow/minimap/dist/', + pkgName: 'vue-flow-minimap.mjs', + }, + { + path: '../../../node_modules/@vue-flow/node-resizer/dist/', + pkgName: 'vue-flow-node-resizer.mjs', + }, + { + path: '../../../node_modules/@vue-flow/node-toolbar/dist/', + pkgName: 'vue-flow-node-toolbar.mjs', + }, + ].forEach(({ path, pkgName }) => { + const filePath = resolve(__dirname, `${path}/${pkgName}`) + if (!existsSync(filePath)) { + throw new Error(`${pkgName} not built. ` + `Run "pnpm -w build" first.`) + } + + emit({ + type: 'asset', + fileName: pkgName, + source: readFileSync(filePath, 'utf-8'), + }) + + console.log(`Copied ${filePath} to ${resolve(__dirname, `../../src/public/${pkgName}`)}`) + }) + + console.log('Copied vue-flow files') +} export function copyVueFlowPlugin(): Plugin { return { name: 'copy-vue-flow', + buildStart() { + copyFiles((file: any) => this.emitFile(file)) + }, + watchChange() { + copyFiles((file: any) => this.emitFile(file)) + }, generateBundle() { - ;[ - { path: '../../../node_modules/@vue-flow/core/dist/', pkgName: 'vue-flow-core.mjs' }, - { - path: '../../../node_modules/@vue-flow/background/dist/', - pkgName: 'vue-flow-background.mjs', - }, - { - path: '../../../node_modules/@vue-flow/controls/dist/', - pkgName: 'vue-flow-controls.mjs', - }, - { - path: '../../../node_modules/@vue-flow/minimap/dist/', - pkgName: 'vue-flow-minimap.mjs', - }, - { - path: '../../../node_modules/@vue-flow/node-resizer/dist/', - pkgName: 'vue-flow-node-resizer.mjs', - }, - { - path: '../../../node_modules/@vue-flow/node-toolbar/dist/', - pkgName: 'vue-flow-node-toolbar.mjs', - }, - ].forEach(({ path, pkgName }) => { - const filePath = resolve(__dirname, `${path}/${pkgName}`) - if (!existsSync(filePath)) { - throw new Error(`${pkgName} not built. ` + `Run "pnpm -w build" first.`) - } - - ;(this as any).emitFile({ - type: 'asset', - fileName: pkgName, - source: readFileSync(filePath, 'utf-8'), - }) - - console.log(`Copied ${filePath} to ${resolve(__dirname, `../../src/public/${pkgName}`)}`) - }) - - console.log('Copied vue-flow files') + copyFiles((file: any) => this.emitFile(file)) }, } }