gpt4 book ai didi

node.js - 将Electron + Puppeteer打包为.exe

转载 作者:行者123 更新时间:2023-12-03 12:38:44 27 4
gpt4 key购买 nike

嗨,我有一个正在运行Puppeteer的Electron应用程序(具体来说,它是puppeteer-cluster)。我希望能够将此应用程序打包到一个可以分发的.exe文件中。
不过,其中一项要求是,我必须能够将其与--asar打包在一起。
这是我尝试但失败的一些内容:
我尝试设置可执行文件路径:

let ChromiumPath = path.join(__dirname, "..", "..", "..",".local-chromium", "win64-809590", "chrome-win","chrome.exe");

const cluster = await Cluster.launch({
puppeteer,
concurrency: Cluster.CONCURRENCY_BROWSER,
maxConcurrency: arg.length,
timeout: 340000,
puppeteerOptions: {
args: browserArgs,
headless: false,
ignoreHTTPSErrors: true,
executablePath : ChromiumPath
},
perBrowserOptions: perBrowserOptions,
});
我尝试在 package.json中指定解压缩目录
"config": {
"forge": {
"packagerConfig": {
"asar": {
"unpack": "**/node_modules/puppeteer/.local-chromium/**/*"
}
}.....
这是我打包我的应用程序的方式: electron-packager . --asar如果需要,这是我的 package.json:
{
"name": "testBrowsers",
"productName": "testBrowsers",
"version": "1.0.0",
"description": "IDk",
"main": "src/index.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-packager ./ testBrowsers --platform=win32 --arch=x64 --icon=./tool.ico --out=./dist --electron-version=10.1.4 --overwrite",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"author": "Otter",
"license": "MIT",
"config": {
"forge": {
"packagerConfig": {
"asar": {
"unpack": "**/node_modules/puppeteer/.local-chromium/**/*"
}
},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "testBrowsers"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"electron-squirrel-startup": "^1.0.0",
"proxy-chain": "^0.4.5",
"puppeteer": "^5.4.1",
"puppeteer-cluster": "^0.22.0",
"puppeteer-extra": "^3.1.15",
"puppeteer-extra-plugin-stealth": "^2.6.5",
"puppeteer-page-proxy": "^1.2.8",
"taskkill": "^3.1.0"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.54",
"@electron-forge/maker-deb": "^6.0.0-beta.54",
"@electron-forge/maker-rpm": "^6.0.0-beta.54",
"@electron-forge/maker-squirrel": "^6.0.0-beta.54",
"@electron-forge/maker-zip": "^6.0.0-beta.54",
"electron": "10.1.4"
}
}
谢谢,我真的希望有人能帮助我解决这个问题! :)

最佳答案

您可能需要将 Chrome 与您的应用分开包装。至少当您尝试使用pkg之类的程序打包 Node 应用程序时,这就是您要做的。
您可以在启动浏览器实例时从自定义安装路径在puppeteer中加载 Chrome 。因此,在代码中,您将需要指定该路径,并确保打包的应用程序具有读取该路径的能力。
然后,您的发行文件(可能是存档文件)将拥有伪装者所需的Chrome版本与实际的应用程序exe分开。
在这里看看类似的讨论
https://github.com/vercel/pkg/issues/204

关于node.js - 将Electron + Puppeteer打包为.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64794689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com