build-runner.mjs 1.2 KB

1234567891011121314151617181920
  1. import { build } from 'esbuild'
  2. import { mkdir,copyFile } from 'node:fs/promises'
  3. import { resolve } from 'node:path'
  4. import { fileURLToPath } from 'node:url'
  5. export async function buildRunner(directory = resolve(import.meta.dirname, '../.runner-build')) {
  6. await mkdir(directory, { recursive: true })
  7. await copyFile(resolve(import.meta.dirname,'../src/runner/worker/hermes_worker.py'),resolve(directory,'hermes_worker.py'))
  8. await copyFile(resolve(import.meta.dirname,'../src/runner/network/guest_proxy.py'),resolve(directory,'guest_proxy.py'))
  9. await build({
  10. entryPoints: { runner:resolve(import.meta.dirname, '../src/runner/index.ts'), 'runner-config':resolve(import.meta.dirname, '../src/runner/config.ts') },
  11. outdir:directory, outExtension:{'.js':'.mjs'}, bundle: true, platform: 'node',
  12. format: 'esm', target: 'node24', sourcemap: true,
  13. banner: { js: "import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);" },
  14. })
  15. }
  16. if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
  17. await buildRunner()
  18. console.log('执行节点已打包到 .runner-build/runner.mjs(需要 Node.js 24 或更高版本)')
  19. }