如何用电子技术将angular 4应用程序转换为桌面应用程序

如何用电子技术将angular 4应用程序转换为桌面应用程序

使用Electron JS,我们可以非常容易地将我们现有的Angular项目转换成桌面应用程序。在这篇文章中,我们将创建一个Angular项目样本,并逐步将其转换为一个桌面应用程序。

  • 必须安装NPM

环境搭建:

  • 安装Angular CLI。
npm install -g @angular/cli
  • 创建一个新的Angular项目。这里我们的项目名称是 “electron-sample”。
ng new electron-sample
cd electron-sample
  • 现在运行该项目并打开http://localhost:4200_,以检查安装是否成功。
ng serve -o
  • 安装Electron JS作为开发依赖。
npm install electron --save-dev
  • 我们还需要一个叫做electron-packager的包。这个包将捆绑我们的应用程序并生成桌面应用程序文件。在全局范围内安装它。
npm install -g electron-packager

例子:在根目录下,创建一个文件main.js,它将是电子的入口。在in.js内添加以下代码。

const { app, BrowserWindow } = require("electron");
const path = require("path");
const url = require("url");
  
let win;
function createWindow() {
  win = new BrowserWindow({ width: 700, height: 700 });
  // load the dist folder from Angular
  win.loadURL(
    url.format({
      
      // compiled version of our app
      pathname: path.join(__dirname, '/dist/index.html'), 
      protocol: "file:",
      slashes: true
    })
  );
  win.on("closed", () => {
    win = null;
  });
}
app.on("ready", createWindow);
// If you are using MACOS, we have to quit the app manually 
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") {
    app.quit();
  }
});

在上面的代码中,我们只是打开了存在于dist/目录下的Angular应用程序的编译版本。注意,我们直接提供了dist文件夹,这样这段代码就可以在任何应用程序上使用。但是文件index.html位于一个子目录中。因此,在angular.json中,改变outputPath键的值,如下。

...
"architect": {
       "build": {
         "builder": "@angular-devkit/build-angular:browser",
         "options": {
           // Make changes in this line
           "outputPath": "dist",   
           "index": "src/index.html",
           ....

这将使编译后的文件保存在dist文件夹中,而不是子目录中。在 src/index.html 中,将 行改为 ,如下所示。

<head>
 <meta charset="utf-8">
 <title>ElectronSample</title>
 <base href="./">   _**<!-- Change this line -->**_
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>

现在在package.json中,我们必须为我们的应用程序的开发和测试添加一些命令,以及指向电子应用程序的起点。在package.json中添加以下几行。

{
 "name": "electron-sample",
 "version": "0.0.0",
 // This line will provide an entry 
 // point for the electron app
 "main": "main.js",
 "scripts": {
   // Runs the app after compilation
   "electron": "electron .", 
   // Compiles and runs the app
   "electron-build": "ng build --prod && electron .",
   "ng": "ng",
   "start": "ng serve",
   "build": "ng build",
   "test": "ng test",
   "lint": "ng lint",
   "e2e": "ng e2e"
 },
 ...
 ...

现在,我们可以通过运行该应用程序来测试它/。

npm run electron-build

注意,如果我们在全局范围内安装了electron,我们可以直接运行这些命令。你应该看到下面的输出。

输出:

如何用电子技术将angular 4应用程序转换为桌面应用程序?

对于已编译的应用程序,我们可以使用以下方法直接运行应用程序

npm run electron

当我们创建了最终的应用程序后,我们可以生成编译的文件,可以直接在我们的系统上使用,而不需要安装依赖性。electron-packager模块帮助我们建立二进制文件。

electron-packager . --platform=linux

在这里,我们可以在达尔文、Linux、Mac和win32中选择我们的平台。执行上述命令将创建一个带有应用程序和操作系统名称的新文件夹。在这个目录中打开终端。

sudo chmod +x electron-sample
./electron-sample

这将打开该应用程序,你应该看到以下输出。

输出:

如何用电子技术将angular 4应用程序转换为桌面应用程序?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程