我想生成一个唯一的.exe文件来执行app或.msi来安装应用程序。怎么做?
答案 0 :(得分:31)
您可以使用electron-packager打包程序,然后使用InnoSetup构建一个设置EXE文件。
答案 1 :(得分:6)
您也可以尝试使用electron-boilerplate。哪个有'发布' gulp的任务,它将为所有跨平台创建单个准备好的可执行文件。您只需要从所有三个平台构建应用程序以生成特定的平台可执行文件。因此,您不需要安装任何第三方工具。
答案 2 :(得分:3)
2020更新
您可以使用electron-builder为电子应用程序创建可移植的.exe文件。
您需要做的就是用yarn add electron-builder --dev
安装电子生成器
然后像这样创建一个 package.json 文件(这仅适用于便携式.exe):
{
"name": "my-electron-app",
"productName": "electron app",
"version": "1.0.0",
"description": "an electron app",
"main": "main.js",
"scripts": {
"start": "electron .",
"dist": "electron-builder"
},
"devDependencies": {
"electron": "^8.0.2",
"electron-builder": "^22.3.2"
},
"build": {
"appId": "com.electron.app",
"win": {
"target": "portable"
},
"portable": {
"unicode": false,
"artifactName": "my_electron_app.exe"
}
}
}
答案 3 :(得分:3)
将电子应用打包为可安装或可执行文件。 electron-builder
应该是最佳选择。而且配置简单,我们也可以使用电子自动更新器。这是electron-builder.json
{
"publish": {
// This can be also 's3', 'github'... based on which server you are using for publish
// https://www.electron.build/configuration/publish
"provider": "generic",
// Feed URL but github provider case, other fields will be required. 'repo', 'owner'...
"url": "https://myappserver.com/updates/"
},
"productName": "My App",
"appId": "com.myapp.app",
"directories": {
// The icon and background in 'buildResources' will be used as app Icon and dmg Background
"buildResources": "buildResources",
// output is directory where the packaged app will be placed
"output": "release"
},
// The files which will be packed
"files": ["src/", "node_modules/", "package.json"],
"mac": {
"target": ["dmg", "zip"], // Also can be, 'pkg', ...
"artifactName": "${productName}-${version}-${os}.${ext}"
},
"win": {
"target": ["nsis", "zip"], // Also can be, 'portable', ...
"artifactName": "${productName}-${version}-${os}.${ext}"
},
"linux": {
"target": ["AppImage"],
"artifactName": "${productName}-${version}-${os}.${ext}"
},
"dmg": {
"title": "${productName}-${version}",
"contents": [
{
"x": 300,
"y": 360
},
{
"x": 490,
"y": 360,
"type": "link",
"path": "/Applications"
}
]
}
}
当然,我们可以添加其他配置,例如nsis
,extraFiles
,afterPack
,afterSign
...
上面的方法很好用。您可以在这里https://www.electron.build/configuration/publish
查看详细信息和其他字段我们可以在package.json
内部定义此配置,也可以将其定义为隔离文件,但在项目根目录下的名称应为electron-builder.json
或electron-builder.yml
。
此外,用于自动更新。
我们应该将安装程序(dmg,exe,appImage)与zip
,blockmap
和latest-{OS_Name}.yml
文件一起上传。
答案 4 :(得分:1)
答案 5 :(得分:1)
有很多好的模块可以生成单个安装程序 * exe 文件。看看其中任何一个:
electron-builder(适用于Windows,Mac和Linux的生成器,具有无服务器应用程序自动更新功能,代码签名,发布等,更少样板)
electron-forge(适用于Windows,Mac和Linux的生成器,它不仅可以打包应用程序,还可以帮助您创建它们,更多样板文件)
windows-installer(易于使用,重量轻,仅生成exe文件)
(仍然困惑哪一个选择?比较here)
答案 6 :(得分:0)
由于大多数答案都没有关于包装的分步说明,所以让我发布如何包装电子应用程序。
我们将首先安装电子包装器。
Electron Packager是一个命令行工具和Node.js库, 将基于电子的应用程序源代码与重命名的电子束捆绑在一起 可执行文件和支持文件放到准备分发的文件夹中。
安装电子包装机: 在Windows cmd中运行以下命令
npm install -g electron-packager --save-dev
接下来,让我们为Windowsx64打包我们的应用程序:
electron-packager appdirectory appName --platform=win32 --arch=x64 --electron-version=1.4.3
答案 7 :(得分:-1)
我首先尝试了电子打包程序,但它生成了许多.dll文件,但仍然无法运行。
对我有用的是:
npm install
npm run dist --ia32
这产生了一个自包含的exe,不需要其他文件来运行该应用程序。
答案 8 :(得分:-2)
您可以在.NET项目中“包装”整个电子应用程序。然后,它创建的单个可执行文件就可以“内部”运行电子应用程序。