<前端開(kāi)發框架之Electron的認識_上海科格菲利網絡工作室

前端開(kāi)發框架之Electron的認識兵通

發布于:2021-11-11 12:59   身水;  

Electron是由Github開(kāi)發,用HT一土ML,CSS和JavaScript來構建跨平台桌面應用程序的一(yī)個開妹雪(kāi)源庫。Electron通過将Chromium和Nod文腦e.js合并到同一(yī)個運行時環境中(zhōng),雪船并将其打包爲Mac,Windows和Linux系統下(x上河ià)的應用來實現這一(yī)目的。


爲了保持Electron的小(xiǎo)巧 兒醫(文件體(tǐ)積) 和可持續性開(kāi)發訊工 (以防依賴庫和API的泛濫) ,Elect自拿ron限制了所使用的核心項目的數量。比如Electron算匠隻用了Chromium的渲染庫而不是其全部組件。這坐物使得升級Chromium更加容易,但也意味着Electron缺就吧少了Google Chrome裏的一(yī)些浏覽器相關的特性。添加到Ele車說ctron的新功能應該主要是原生(shēng)場自 API。如果可以的話(huà),一(y腦老ī)個功能應該盡可能的成爲一(yī)個Node務秒.js模塊。




2.開(kāi)發環境


可以使用原生(shēng)的Node.js開(kāi)發見信環境來開(kāi)發Electron應用。爲了打造一(yī)個Elec我議tron桌面程序的開(kāi)發環境,你隻需要安裝好No冷愛de.js、npm、一(yī)個順手的代碼編輯器以什有及對你的操作系統命令行客戶端有基本了解。我(wǒ)(wǒ)們以比較常見的w吃愛indows開(kāi)發環境(win7以上)爲例:


首先,安裝最新版本的node.js。推薦安裝最離體新的長期支持的版本。在安裝過程中(zhōng)的配置界面請票哥勾選node.js runtime、npm package manager和a唱的dd to path這三個選項。可通過以下(訊家xià)命令來确認node和npm已經安裝完成白工。




3.打造一(yī)個簡單的Electron應用


Electron 可以讓你使用純 JavaScript 西樂調用豐富的原生(shēng)(操作系統) APIs 來創造桌面應用。你可農術以把它看作一(yī)個 Node. js 的變體(tǐ),它麗時專注于桌面應用而不是 Web 服務器端。這不意味着 Electron 是某個這個圖形用戶界面(GUI)庫的 JavaScript 版本。相反,Elect煙又ron 使用 web 頁面作爲它的 GUI,所以你能把它看影報作成一(yī)個被 JavaScript 控制的,精簡版的 Chr現還omium 浏覽器。


從開(kāi)發的角度來看, Electron applicat機西ion 本質上是一(yī)個 Node. js 應用程序。與 Node.j音筆s 模塊相同,應用的入口是 package.json 文件。一(yī山子)個最基本的 Electron 應用一(yī)般來說會有如商到下(xià)的目錄結構:


your-app/


├── package.json


├── main.js


└── xw.html


爲你的新Electron應用創建一(yī)個新的高地空文件夾。打開(kāi)你的命令行工(gō動從ng)具,然後從該文件夾運行npm init




npm 會幫助你創建一(yī)個基本的 不這package.json 文件。其中(zhōn站坐g)的 main 字段所表示的腳本爲應用的啓關女動腳本,它将會在主進程中(zhōng)執行。如下(xià)片段是一(yī)個 了刀package.json 的示例:


{


"name": "慢兒demo",


"version": "1.0.0"離商,


"description": "tes山在t",


"main": "i去區ndex.js",


"scripts": {


"test": "echo \"關長;Error: no test specified\" &訊答;& exit 1"


},


"author": 市看"",


"license": "I音民SC"


}


注意:如果 main 字段沒有在 pac微這kage.json 中(zhōng)出現,那從書麽 Electron 将會嘗試加載 index.js 文件(就像 No月物de.js 自身那樣)。如果你實際開(kāi)發的是一(yī)個簡影快單的 Node 應用,那麽你需要添加一(yī)個 start 腳本來黃是指引 node 去(qù)執行當前的 package,把這個 就哥Node 應用轉換成一(yī)個 Elect慢話ron 應用也是非常簡單的,我(wǒ)(w看通ǒ)們隻不過是把 node 運行時替換成了 electron 運錯下行時。


{


"name": "d外麗emo",


"version": &山煙quot;1.0.0",


"description":弟請 "test",


"main": "index.js&qu船我ot;,


"scripts": {


"start": "街土electron ."


},


"author": "身秒",


"license": "ISC"}


4.開(kāi)發一(yī)個簡單的electron


Electron apps 使用JavaScript開(kāi)發,其你坐工(gōng)作原理和方法與Node.js 做冷開(kāi)發相同。electron模塊包含了Electron提供的所有AP山林I和功能,引入方法和普通Node.js模塊一(金她yī)樣。


electron 模塊所提供的功能都是通過命名空間暴露出來的。比如說:商從electron.app負責管理Electron 應用程序的生(sh務船ēng)命周期, electron.Brow什都serWindow類負責創建窗口。下(xià)面是一(yī)個簡單的main姐亮.js文件,它将在應用程序準備就緒後打開(kāi)一(yī靜男)個窗口。


您應當在 main.js 中(zhōng)創建大金窗口,并處理程序中(zhōng)可能遇到的所有系統事件。秒制下(xià)面我(wǒ)(wǒ)們将完善上述例子,添加以下(xià)功店討能:打開(kāi)開(kāi)發者工(gōng)具笑暗、處理窗口關閉事件、在macOS用戶點擊dock上圖标時重建窗口,添加後,的慢main. js 就像下(xià)面這樣:


const { app, BrowserWindow 月又} = require('electron人間9;)


function createWindow () {


// 創建浏覽器窗口


const win = new BrowserWi船慢ndow({


width: 800,


height: 600,


webPreferences: {


nodeIntegration: true


}


})


// 并且爲你的應用加載xw.html


win.loadFile('xw.html')


// 打開(kāi)開(kāi)發者工(gōng)具


win.webContents.openDevTools()


}


// This method will be called wh照日en Electron has finished


// initialization and is ready to 議門create browser windows.


// 部分(fēn) API 在 ready 事件觸發志鄉後才能使用。


app.whenReady().then(createWin在妹dow)


// Quit when all windows are clo議離sed.


app.on('window-all舞民-closed', () => {


// 在 macOS 上,除非用戶用 Cmd + Q 确定地退出,


// 否則絕大(dà)部分(fēn)應用及其菜單欄路山會保持激活。


if (process.platform !== 可內'darwin') {


app.quit()


}


})


app.on('activate'數個, () => {


// 在macOS上,當單擊dock圖标并且沒有其他窗口打開(kāi草一)時,


// 通常在應用程序中(zhōng)重新創建一(yī)有如個窗口。


if (BrowserWindow.getAllWindows().leng動金th === 0) {


createWindow()


}


})


// In this file you can inc林間lude the rest of your a南離pp's specific main農也 process


// code. 也可以拆分(fēn)成幾個文件,然後用 requi暗訊re 導入。


5.啓動應用


在創建并初始化完成 main.js、 xw.htm討是l和package.json之後,您就可以在當前工(gōng)程的根目錄執木要行 npm start 命令來啓動剛剛編寫好校身的Electron程序了。


推薦閱讀:


前端開(kāi)發框架之Vue基礎


前端開(kāi)發框架之Vue


前端開(kāi)發之React開(kāi)發框架的介紹與使用



上一(yī)篇:2022新手可以做的自媒體(tǐ)平台有哪些

下(xià)一(yī)篇:程序員(yuán)之友的酸楚

相關内容 觀察行業視覺,用專業的角度,講出你們的心聲。

I NEED TO BUILD WEBSITE

我(wǒ)(wǒ)需要建站

*請認真填寫需求信息,我(wǒ)(wǒ)們會在24小(xiǎo雪討)時内與您取得聯系。