【问题标题】:Execute an exe(Inside Project structure) in Electron在 Electron 中执行一个 exe(内部项目结构)
【发布时间】:2019-03-20 15:22:13
【问题描述】:

在开发模式下,执行 exe 运行良好。

我启动 exe 的代码是

function LaunchExe() {
        var child = require('child_process').execFile;
        var executablePath = 'DemoExe/Sample.exe';
        var parameters = ['Hai', 'Test', 'Dat'];
        child(executablePath, parameters, function (err, data) {
            console.log(err)
            console.log(data.toString());
        });
}

但是打包 Electron 应用后,我无法启动 exe。

我用来构建exe的命令是

electron-packager . --asar

错误代码

 Error: spawn DemoExe/Sample.exe ENOENT
     at Process.ChildProcess._handle.onexit (internal/child_process.js:232)
     at onErrorNT (internal/child_process.js:407)
     at process._tickCallback (internal/process/next_tick.js:63)

问候。

【问题讨论】:

  • 似乎找不到可执行文件。它存在于包文件夹中吗?
  • 打包后得到两个文件,1.app.asar,2.electron.asar
  • 尝试在路径前加./,这样就变成了var executablePath = './DemoExe/Sample.exe';
  • @LeonardoBuscemi 我已经尝试过了,但不幸的是没有执行
  • 我最后一次尝试:试试path.join(__dirname, "DemoExe", "Sample.exe")

标签: electron electron-builder electron-packager


【解决方案1】:

你的项目有角度吗?

也许这会有所帮助,但我在使用电子包装器时也遇到了问题。

所以我建议你使用电子生成器:https://www.electron.build

首先,您需要在根目录添加一个名为 electron-builder.json 的文件,它应该包含以下内容(您需要更新产品名称和图标位置):

{
  "productName": "projectname",
  "appId": "org.project.projectname",
  "artifactName": "${productName}-setup-${version}.${ext}",
  "directories": {
    "output": "builds/"
  },
  "files": [
    "dist/",
    "node_modules/",
    "package.json",
    "**/*",
    "!**/*.ts",
    "!*.code-workspace",
    "!package-lock.json",
    "!src/",
    "!e2e/",
    "!hooks/",
    "!angular.json",
    "!_config.yml",
    "!karma.conf.js",
    "!tsconfig.json",
    "!tslint.json"
  ],
  "nsis": {
    "oneClick": false,
    "allowToChangeInstallationDirectory": true
  },
  "mac": {
    "icon": "src/favicon.ico"
  },
  "win": {
    "icon": "src/favicon.ico"
  },
  "linux": {
    "icon": "src/favicon.png"
  }
}

然后,您需要将这些脚本添加到您的 package.json

"scripts": {
    "build:prod": "npm run build -- -c production",
    "package:windows": "npm run build:prod && electron-builder build --windows"
}

可以用

编译可执行文件

npm 运行包:windows

另外,不要忘记将电子生成器添加到您的开发依赖项中:

yarn add electron-builder --dev

可执行文件位于 /builds

【讨论】:

  • 执行 npm run package:windows npm ERR 时出现此错误!缺少脚本:构建
  • 另外我没有使用角度。
  • npm run build:prod 命令在 package:windows 脚本用于 Angular 项目,可以删除
【解决方案2】:

必须按照以下步骤工作,

1.使用命令打包Electron应用

电子包装器。

2.exe的路径

path.join(__dirname, "DemoExe", "Sample.exe")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多