我刚刚从一个角度应用程序成功构建了一个桌面应用程序,以下是步骤:
1.将目录更改为您的 Angular 应用并安装电子
cd my-angular-app/
npm i -D electron@latest
2。创建电子输入文件
在项目的根目录中创建一个 main.js 文件。该文件将是电子应用程序的主要入口点,并将包含桌面应用程序的主要 API。
main.js 内容:
const { app, BrowserWindow } = require("electron");
const path = require("path");
const url = require("url");
let win;
function createWindow() {
win = new BrowserWindow({ width: 800, height: 600 });
// load the dist folder from Angular
win.loadURL(
url.format({
pathname: path.join(__dirname, '/dist/index.html'), // compiled verion of our app
protocol: "file:",
slashes: true
})
);
// The following is optional and will open the DevTools:
// win.webContents.openDevTools()
win.on("closed", () => {
win = null;
});
}
app.on("ready", createWindow);
// on macOS, closing the window doesn't quit the app
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
});
3.使用您的应用详细信息更新 package.json
更新 package.json 文件以指向电子主入口点,并填写有关您的应用程序的信息(应用程序名称、版本、描述和作者)
package.json
{
"name": "my-angular-app",
"version": "0.0.1",
"main": "main.js",
"author" : "my-name",
"description": "The app is about foo and bar",
...
}
4.更新 package.json 中的脚本
添加一个新的 NPM 脚本,它将首先创建一个构建,然后从 dist 文件夹启动桌面应用程序。
{
...
"scripts": {
"electron": "ng build --base-href ./ && electron .",
...
}
...
}
5.更新 Angular 以设置构建目录
在 angular.json 中,像我们在 main.js 文件中设置 /dist/index.html 一样设置构建目录。
...,
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist",
6.运行应用程序
在所有条件相同的情况下,运行运行命令后,您现在应该会在桌面窗口中看到应用程序启动了:
npm run electron
7.构建(打包)APP:
使用工具
您可以使用以下工具来分发您的应用程序:
-
电子锻造
-
电子制造商
-
电子包装器
这些工具将处理您需要采取的所有步骤,以最终获得可分发的 Electron 应用程序,例如捆绑您的应用程序、重新命名可执行文件和设置正确的图标。
以下是如何使用电子锻造进行打包
1.添加 Electron Forge 作为您应用的开发依赖项,并使用其导入命令设置 Forge 的脚手架:
npm install --save-dev @electron-forge/cli
npx electron-forge import
2。使用 Forge 的 make 命令创建可分发文件:
npm run make
Electron Forge 会创建你的包所在的 out 文件夹:
// Example for macOS
out/
├── out/make/zip/darwin/x64/my-electron-app-darwin-x64-1.0.0.zip
├── ...
└── out/my-electron-app-darwin-x64/my-electron-app.app/Contents/MacOS/my-electron-app
我希望这可以帮助很多人。