91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js如何實現桌面應用

發布時間:2021-06-27 15:56:13 來源:億速云 閱讀:1632 作者:小新 欄目:大數據

這篇文章主要為大家展示了“Node.js如何實現桌面應用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Node.js如何實現桌面應用”這篇文章吧。

首先我們需要創建一個Node.js項目。

Node.js如何實現桌面應用

我們需要先裝下electron依賴。對于electron官方文檔是這么解釋的:

Node.js如何實現桌面應用

        其實在我理解看來electron的角色有點類似于打包工具,我們可以使用H5開發一個網站,然后直接使用打包工具打包成一個app。而electron其實也是一個這樣的角色,它可以將我們使用HTML, JavaScript, css開發的項目打包成一個桌面應用,而且可以同時打包成不同操作系統下的桌面可執行程序。

        npm國內訪問比較慢,可能會導致安裝依賴失敗的問題。所以我們可以使用淘寶鏡像進行下載,使用命令:

npm install cnpm -g --registry=http://registry.npm.taobao.org

Node.js如何實現桌面應用

使用cnpm全局安裝electron、electron-prebuilt、electron-packager、electron-builder,使用命令:

cnpm install -g electron electron-prebuilt electron-packager electron-builder

Node.js如何實現桌面應用

使用cnpm安裝aser打包工具:

cnpm install -g asar

Node.js如何實現桌面應用

到這里本篇文章需要的依賴全部安裝成功,下一步初始化項目,使用命令:

npm  init

Node.js如何實現桌面應用

到這里我們前期項目配置全部完成,下一步我們先創建一個index.html,功能很簡單,就一個按鈕,點擊則彈出hello world

Node.js如何實現桌面應用

接下來建立一個index.js,在這個文件里面創建桌面窗口以及頁面渲染。

首先在文件頂部引入所需的包以及定義一個全局變量win

Node.js如何實現桌面應用

為什么需要這個全局變量呢?因為我們需要對桌面窗口對象進行全局引用,否則當該局部變量生命周期結束被當做垃圾回收時,該桌面窗口就會被關閉。

我們需要監聽ready方法,該方法將會在Electron完成初始化并準備創建桌面窗口時調用。在ready方法中調用創建桌面窗口的邏輯處理。

Node.js如何實現桌面應用

監聽window-all-closed方法,當所有桌面窗口關閉時,退出該桌面應用

Node.js如何實現桌面應用

監聽activate方法,當app激活時觸發,一般針對macOS要需要處理。在macOS中,當點擊應用圖標并且沒有其他窗口打開時,會重新創建一個窗口 ,所以在activate方法中要做判斷,如果窗口對象winnull,則創建一個新窗口。否則展示已存在的窗口。

Node.js如何實現桌面應用

到這里我們最基本的桌面應用搭建完成了,我們可以用electron進行測試,命令為:

electron  .

Node.js如何實現桌面應用

點擊按鈕會跳出hello world

Node.js如何實現桌面應用

所以我們可以發現,我們使用electron進行桌面應用的開發我們不需要去了解我寫的html是如何被轉化成桌面應用執行程序的。用官方的解釋來說就是簡單的部分你來做,復雜的交給我們框架來負責實現。像Atomvs  code、wordpress其實就是基于electron去進行開發的,所以說electron的穩定性是可以肯定的。

接下來我們需要將我們的應用打包生成桌面應用啟動文件,打包就需要使用我們剛才一開始安裝的依賴:electron-packager。打包命令為:

electron-packager . niyueling --out ../electron-node

Node.js如何實現桌面應用

這句打包命令的意思就是:使用electron-packager包將當前文件目錄下的資源命名成niyueling打包到父級的electron-node文件夾。打包的時候會自動判定你當前運行的操作系統打包生成對應系統下的可執行文件。如果想一次性打包所有操作系統的可執行文件,可以使用命令:

electron-packager . niyueling --out ../electron-node -all

注意:由于打包的時候會將瀏覽器內核完整打包進去,所以就算你的項目只有1M以內,打包生成的可執行文件最終也會有幾十M的大小。

Node.js如何實現桌面應用

我們可以看到生成了一個niyueling.exe執行文件。我們執行這個文件就可以運行我們的桌面應用了。

Node.js如何實現桌面應用

最后我們來談談,使用Node.js結合electron模式開發桌面應用有什么優缺點呢?我們先來說說它的優點吧:

    1.如果我們平常的桌面軟件需要升級,一般需要下載最新的安裝包,但是electron-packager打包實際上實際上是瀏覽器內核和主線程控制腳本,具體的業務邏輯都是獨立在某個文件夾下的,如router文件夾。只要我們桌面應用主線程邏輯不變,不管是UI做了調整還是交互效果做了修整,我們則只需要更新router文件夾下的資源,而無需重新發布新安裝包。

    2.界面定制操作方便,原則上web應用能做的它都可以實現。

    3.相比其他跨平臺方案,更加穩定,bug少。

electron又有什么缺點呢?

    1.啟動慢,因為打包整個瀏覽器內核會一起進行打包。

    2.除了主進程,你可能還需要一些進程來輔助工作。每新開一個進程,就會產生額外的內存開銷,太過于依賴cpu

    3.打包的文件過大,原因說過了,因為打包會將整個瀏覽器內核一起打包。

以上是“Node.js如何實現桌面應用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海门市| 鄂尔多斯市| 上林县| 洛浦县| 噶尔县| 济宁市| 万载县| 隆林| 扶沟县| 七台河市| 宾川县| 嘉荫县| 汝州市| 香格里拉县| 阜新市| 德兴市| 沛县| 青冈县| 曲阜市| 玉林市| 峨眉山市| 安岳县| 上林县| 安福县| 徐水县| 曲沃县| 泸州市| 洛宁县| 灵丘县| 西安市| 南召县| 门头沟区| 曲麻莱县| 上蔡县| 宣汉县| 天镇县| 海阳市| 西丰县| 如东县| 云浮市| 精河县|