You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PKG中配置动态生成的Report目录资源?

解决方案

1. 移除无效的Assets配置

你之前配置的report/*.* || report/*.png不会生效,因为打包时Report目录下还没有生成任何截图文件,pkg无法打包不存在的资源。直接从package.json的pkg.assets中删除这条规则。

2. 运行时动态创建Report目录

在代码中添加逻辑,确保程序启动时Report目录存在,避免截图时因目录不存在报错。示例代码:

const fs = require('fs');
const path = require('path');

// 确定Report目录的绝对路径(以当前工作目录为基准)
const reportDir = path.resolve(process.cwd(), 'Report');

// 递归创建目录(不存在则创建)
if (!fs.existsSync(reportDir)) {
  fs.mkdirSync(reportDir, { recursive: true });
}

// 截图时指定该目录下的路径
await page.screenshot({ path: path.join(reportDir, `screenshot-${Date.now()}.png`) });

3. 处理Puppeteer浏览器二进制文件的打包(关键注意点)

用pkg打包Puppeteer应用时,容易出现浏览器找不到的问题,需要把Puppeteer的本地浏览器二进制文件加入assets配置:
在package.json中修改pkg配置:

"pkg": {
  "assets": [
    "node_modules/puppeteer/.local-chromium/**/*"
  ]
}

然后在代码中指定浏览器路径:

const puppeteer = require('puppeteer');

const browser = await puppeteer.launch({
  // 让Puppeteer自动定位打包后的浏览器路径
  executablePath: puppeteer.executablePath(),
  headless: 'new'
});

若使用puppeteer-core,则需手动指定浏览器二进制文件的打包路径,确保运行时能正确访问。

内容的提问来源于stack exchange,提问作者BlueFits

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:55:14