afterPack.js 868 B

123456789101112131415161718192021222324
  1. /**
  2. * electron-builder afterPack:若缺少 browser_v8_context_snapshot.bin,
  3. * 则从 v8_context_snapshot.bin 复制一份,避免「缺少v8 startup snapshot文件」报错。
  4. */
  5. const path = require('path')
  6. const fs = require('fs')
  7. function tryCopySnapshot(dir) {
  8. const v8 = path.join(dir, 'v8_context_snapshot.bin')
  9. const browser = path.join(dir, 'browser_v8_context_snapshot.bin')
  10. if (fs.existsSync(v8) && !fs.existsSync(browser)) {
  11. fs.copyFileSync(v8, browser)
  12. console.log('[afterPack] 已复制 v8_context_snapshot.bin -> browser_v8_context_snapshot.bin')
  13. return true
  14. }
  15. return false
  16. }
  17. module.exports = async function afterPack(context) {
  18. if (context.electronPlatformName !== 'win32') return
  19. const resourcesDir = path.join(context.appOutDir, 'resources')
  20. tryCopySnapshot(resourcesDir) || tryCopySnapshot(context.appOutDir)
  21. }