嗨,我有一个运行Puppeteer的电子应用程序(具体地说,它是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中指定unpack目录。
"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"
}
}谢谢,我真的希望有人能帮我解决这个问题!:)
发布于 2021-02-24 09:31:53
您可能需要将铬与您的应用程序分开包装。在尝试使用pkg之类的方法打包节点应用程序时,至少会这样做。
启动浏览器实例时,您可以从自定义安装路径加载傀儡中的铬。因此,在代码中,您需要指定路径,并确保您的打包应用程序具有读取该路径的能力。
然后,您的分发文件(可能是存档)将使傀儡师需要的铬构建与实际的app exe分开。
在这里看一下类似的讨论
https://stackoverflow.com/questions/64794689
复制相似问题