首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将电子+伪随机体封装到.exe中

将电子+伪随机体封装到.exe中
EN

Stack Overflow用户
提问于 2020-11-11 21:51:44
回答 1查看 1.8K关注 0票数 1

嗨,我有一个运行Puppeteer的电子应用程序(具体地说,它是puppeteer-cluster)。我希望能够将这个应用程序打包到一个.exe中,我可以用它发布。

不过,有一个要求是,我必须能够用--asar打包它。

,这里有一些我试过但失败了的东西:

我尝试设置可执行路径:

代码语言:javascript
复制
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目录。

代码语言:javascript
复制
"config": {
    "forge": {
      "packagerConfig": {
        "asar": {
          "unpack": "**/node_modules/puppeteer/.local-chromium/**/*"
        }
      }.....

下面是我如何打包我的应用程序:

electron-packager . --asar

如果需要的话,这是我的package.json

代码语言:javascript
复制
{
  "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"
  }
}

谢谢,我真的希望有人能帮我解决这个问题!:)

EN

回答 1

Stack Overflow用户

发布于 2021-02-24 09:31:53

您可能需要将铬与您的应用程序分开包装。在尝试使用pkg之类的方法打包节点应用程序时,至少会这样做。

启动浏览器实例时,您可以从自定义安装路径加载傀儡中的铬。因此,在代码中,您需要指定路径,并确保您的打包应用程序具有读取该路径的能力。

然后,您的分发文件(可能是存档)将使傀儡师需要的铬构建与实际的app exe分开。

在这里看一下类似的讨论

https://github.com/vercel/pkg/issues/204

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64794689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档