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

使用PKG生成可执行文件遇Node 20版本不兼容问题求助

解决pkg打包时"Error! No available node version satisfies 'node20'"的问题

问题根源

你没创建package.json,pkg无法明确目标Node版本,默认尝试的node20可能不在pkg支持的预编译版本列表里,或者你本地没安装对应版本的Node。

解决步骤

  • 初始化项目配置文件
    打开终端,在脚本所在目录运行:

    npm init -y
    

    这会生成默认的package.json文件。

  • 安装所有依赖
    你的代码用到了多个第三方包,必须先安装它们,不然打包后的EXE会找不到模块:

    npm install puppeteer-extra cli-progress puppeteer-extra-plugin-adblocker
    
  • 指定兼容的Node版本
    打开生成的package.json,添加pkg的配置项,指定一个pkg支持的Node版本(比如node18,这个版本的预编译包比较稳定):

    "pkg": {
      "targets": [
        "node18-win-x64"
      ]
    }
    

    如果你本地安装的是其他版本(比如node16),把node18改成你本地的版本号即可。

  • 重新打包
    再次运行打包命令:

    pkg script.js
    

    等待打包完成后,就能在当前目录找到生成的EXE文件了。

额外注意点

  • Puppeteer打包后需要Chromium支持,pkg会自动打包Chromium,但如果遇到运行时找不到浏览器的问题,可以在代码里指定Chromium的路径,或者确保打包时包含了对应的资源。
  • 如果你本地安装的Node版本和指定的target版本不一致,可能会出现兼容性问题,尽量保持版本匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:27:37