electron初探

為什么要使用electron

一:即使在移動端和云端大行其道而,桌面應用仍然占有重要的位置。和 Web 應用比起來桌面應用的優(yōu)點還是很多的:

  1. 明確的入口,只要把它們放在開始菜單欄或者 dock 上,你就能隨時打開它們
  2. 和操作系統(tǒng)之間的交互更良好(快捷鍵,通知欄等,切換應用等)

二:但是如果要開發(fā)一個桌面應用的話,windows,linux,mac三種操作系統(tǒng)的開發(fā)語言都是不一樣的。跨平臺的特性,是在選擇開發(fā)桌面應用的框架中,應該優(yōu)先被考慮到的。
三:同時開發(fā)過Html和natvie(android, ios)的人應該知道,HTML在制作界面方面,是比natvie應用要便捷的。因此,一款可以使用前端語言(HTML+CSS+JS),并且可以跨平臺的框架,就是我們的最佳選擇。目前,這種框架最出名的就是electron和NW.JS。在網上看了一些對比,electron比nw的坑少一些,活躍度更高,但是 ** electron不支持XP ** 。具體見如下鏈接 : https://www.zhihu.com/question/38854224?sort=created

electron簡介

electron是github的編輯器ATOM使用的應用框架。框架描述 見網站
http://electron.atom.io/
它使用nodejs構建,webkit瀏覽器內核。完美支持一些高級JS語言,如ECMA6。并且和其他桌面應用一樣,他可以使用nodejs的內核操作文件系統(tǒng)。最吸引人的,就是它可以在網頁的js文件中require nodejs的一些api,直接使用。是不是很酷炫。

入門

首先你需要安裝nodejs和npm,然后執(zhí)行命令

  # Install as a development dependency
  npm install electron --save-dev
  # Install the `electron` command globally in your $PATH
  npm install electron -g

安裝在本地或者全局都可以。但是要注意的是,項目中使用的一些node工具包,必須安裝在本地,也就是不能使用-g命令。不然在打包成獨立的應用的時候,會掛掉,這點需要注意。
項目結構如下圖:

  your-app/
    ── package.json
    ── main.js
    ── index.html

mian.js里,要初始化BrowserWindow模塊來加載index.html。具體可以見官網的例子
https://github.com/electron/electron-quick-start

值得注意的是,這個demo有個坑。在electron-quick-start里的package.json里,依賴的是

"devDependencies": {
    "electron-prebuilt": "^1.2.0"
  },

electron-prebuilt(https://github.com/electron-userland/electron-prebuilt) 是一個 npm模塊,包含所使用的 Electron 預編譯版本。也就是說,有這個,你就可以在開發(fā)的時候運行electron的應用了,并不需要預裝electron。而electron-prebuilt的依賴里,含有一個electron-download模塊。據我猜測,這個模塊是用來下載最新版本的electron二進制應用的。而且這個模塊里的url是寫死的github上的下載地址。這也就是為啥很多人給npm設置了淘寶的源,依然在運行demo工程時還需要下載,并且下載的這么慢的原因。這個坑糾結了我好久(因為我的代理正好出問題了T_T)
其實我們完全可以手工下載eletron程序,直接運行我們的應用,具體教程見這里:

https://github.com/electron/electron/blob/master/docs-translations/zh-CN/tutorial/quick-start.md#手工下載-electron-二進制文件

另附上淘寶的開源鏡像https://npm.taobao.org/mirrors/electron

好了,接下來就可以愉快的開發(fā)electron應用了。electron提供了很多的api供大家選擇。包括文件選擇器,剪貼板之類的。具體地址見下方。http://electron.atom.io/docs/api/

打包

打包的話,推薦使用electron-packager(https://github.com/electron-userland/electron-packager)

electron-packager <location of project> <name of project> <platform> <architecture> <electron version> <optional options>

如果沒有設定platform,會默認選擇當前的系統(tǒng)環(huán)境來打包。
第一次打包,會下載platform對應的平臺的工程。依然使用的是electron-download,依然是寫死的url,沒有代理的同學默哀吧。
我的打包命令一般是這樣

electron-packager app代碼位置 應用名字 --out 輸入位置 

這樣你的應用就打包好了,遇到一些坑,我會繼續(xù)更新文章的~

引用
https://zhuanlan.zhihu.com/p/20225295?columnSlug=FrontendMagazine

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容