在 Electron 中执行一个 exe(内部项目结构)
Execute an exe(Inside Project structure) in Electron
在开发模式下,执行 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)
问候。
你的项目有angular吗?
也许这会有所帮助,但我在使用 electron-packager 时也遇到了问题。
所以我建议你使用 electron builder : 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 run package:windows
此外,不要忘记将 electron builder 添加到您的开发依赖项中:
yarn add electron-builder --dev
位于/builds
的可执行文件
必须按照以下步骤操作,
1.package Electron 应用程序使用命令
electron-packager .
2.Path 执行
path.join(__dirname, "DemoExe", "Sample.exe")
在开发模式下,执行 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)
问候。
你的项目有angular吗?
也许这会有所帮助,但我在使用 electron-packager 时也遇到了问题。
所以我建议你使用 electron builder : 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 run package:windows
此外,不要忘记将 electron builder 添加到您的开发依赖项中:
yarn add electron-builder --dev
位于/builds
的可执行文件必须按照以下步骤操作,
1.package Electron 应用程序使用命令
electron-packager .
2.Path 执行
path.join(__dirname, "DemoExe", "Sample.exe")