在Electron中执行一个exe(内部项目结构)

时间:2019-03-18 08:04:57

标签: electron electron-builder electron-packager

在开发模式下,执行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)

致谢。

2 个答案:

答案 0 :(得分: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

此外,别忘了在您的开发依赖项中添加电子生成器:

  

纱线添加电子生成器--dev

可执行文件位于 /内部版本

答案 1 :(得分:1)

可以执行以下步骤,

1。使用命令打包Electron应用

  

电子包装机。

2。exe路径

  

path.join(__ dirname,“ DemoExe”,“ Sample.exe”)