如何将Electron应用程序部署为Windows中的可执行文件或可安装程序?

时间:2015-07-08 08:08:22

标签: windows deployment desktop-application electron

我想生成一个唯一的.exe文件来执行app或.msi来安装应用程序。怎么做?

9 个答案:

答案 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"
      }
    ]
  }
}

当然,我们可以添加其他配置,例如nsisextraFilesafterPackafterSign ...

上面的方法很好用。您可以在这里https://www.electron.build/configuration/publish

查看详细信息和其他字段

我们可以在package.json内部定义此配置,也可以将其定义为隔离文件,但在项目根目录下的名称应为electron-builder.jsonelectron-builder.yml

此外,用于自动更新。 我们应该将安装程序(dmg,exe,appImage)与zipblockmaplatest-{OS_Name}.yml文件一起上传。

答案 4 :(得分:1)

好吧......这会有效,但想法就是运行.exe而不需要在PC上安装它...另一个解决方案是使用Autoplay media Studio来包装你用电子生成的包并制作一个可执行文件或其他解决方案是使用thinstall vmware ...缺点都是商业性的,所以你必须付钱给他们......

答案 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项目中“包装”整个电子应用程序。然后,它创建的单个可执行文件就可以“内部”运行电子应用程序。