国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

electron打包:electron-packager及electron-builder兩種方式實(shí)

KaltZK / 3202人閱讀

摘要:前言本文主要介紹如何通過及兩種方式,將已有的應(yīng)用打包成格式和可執(zhí)行文件。導(dǎo)致了在打包的過程中非常慢。由于是初次接觸,如讀者在文中發(fā)現(xiàn)錯(cuò)誤,請(qǐng)及時(shí)指正。

前言

本文主要介紹如何通過electron-packager及electron-builder兩種方式,將已有的electron應(yīng)用打包成msi格式和exe可執(zhí)行文件。打包是一個(gè)成熟的應(yīng)用程序一個(gè)重要的環(huán)節(jié),希望這篇文章可以給大家一些參考,最后會(huì)講到打包時(shí)遇到的一些坑,與大家分享。

本文適用于有一些electron實(shí)踐經(jīng)驗(yàn)的小伙伴,知道如何創(chuàng)建一個(gè)簡(jiǎn)單的electron應(yīng)用,并且知道electron主進(jìn)程、渲染進(jìn)程間如何通信。

electron-packager

使用命令 npm install electron-packager --save-dev 安裝好之后會(huì)在package.json中的devDependencies生成代碼:

"devDependencies": {
    "electron-packager": "^9.1.0"
}
注意:

1、打包時(shí)要分清devDependenciesdependencies的區(qū)別,文章后會(huì)講。
2、package.json 的額外字段 —— productName、author 和 description,雖然這幾個(gè)字段并不是打包必備的,但它們會(huì)在 Windows 的 Squirrel 安裝包(用于自動(dòng)更新)中使用到,所以請(qǐng)讀者根據(jù)實(shí)際情況添加。

安裝好模塊之后,就可以對(duì)應(yīng)用進(jìn)行打包。electron-packager的打包基本命令是:

electron-packager      

參數(shù)說明:

sourcedir:項(xiàng)目所在路徑

appname:應(yīng)用名稱

platform:確定了你要構(gòu)建哪個(gè)平臺(tái)的應(yīng)用(Windows、Mac 還是 Linux)

architecture:決定了使用 x86 還是 x64 還是兩個(gè)架構(gòu)都用

electron version:electron 的版本

optional options:可選選項(xiàng)

為了方便起見,在package.json中添加代碼:

"scripts": {
    "package": "electron-packager ./ myapp --out ./OutApp --version 1.7.9 --overwrite --icon=./app/img/icon/icon.ico"
  }

然后在命令行中執(zhí)行npm run package

打包成功后,會(huì)在OutApp目錄(此處的目錄是在參數(shù)中配置的)下生成.exe,運(yùn)行該文件,并且沒有報(bào)錯(cuò),則說明本次打包成功。

特點(diǎn):

1、支持平臺(tái)有:Windows (32/64 bit)、OS X (also known as macOS)、Linux (x86/x86_64);
2、進(jìn)行應(yīng)用更新時(shí),使用electron內(nèi)置的autoUpdate進(jìn)行更新
3、支持CLI和JS API兩種使用方式;

electron-builder

首先來看看什么是electron-builder,來自官方的解釋:

A complete solution to package and build a ready for distribution Electron, Proton Native or Muon app for macOS, Windows and Linux with “auto update” support out of the box.

簡(jiǎn)單的說,electron-builder就是有比electron-packager有更豐富的的功能,支持更多的平臺(tái),同時(shí)也支持了自動(dòng)更新。除了這幾點(diǎn)之外,由electron-builder打出的包更為輕量,并且可以打包出不暴露源碼的setup安裝程序。考慮到以上幾點(diǎn),我果斷選擇了electron-builder       (微笑

首先,依舊是安裝依賴。
(這里官方強(qiáng)烈推薦使用yarn安裝依賴包,但我使用了npm安裝的依賴也可以正常打包,所以至于為什么官方強(qiáng)烈推薦用yarn,我還沒搞懂其原因,還請(qǐng)了解緣由的大佬們賜教)

yarn add electron-builder --save-dev

package.json中做如下配置

"build": {
    "appId": "com.xxx.app",
    "mac": {
      "target": ["dmg","zip"]
    },
    "win": {
      "target": ["nsis","zip"]
    }
},
"scripts": {
    "dist": "electron-builder --win --x64"
},

在命令行中執(zhí)行npm run dist ,執(zhí)行結(jié)果如下:

打包后在dist目錄生成如下文件:

解壓zip包或執(zhí)行setup安裝文件,應(yīng)用啟動(dòng)后且沒有報(bào)錯(cuò),則說明本次打包成功。

特點(diǎn):

1、electron-builder 可以打包成msi、exe、dmg文件,macOS系統(tǒng),只能打包dmg文件,window系統(tǒng)才能打包exe,msi文件;
2、幾乎支持了所有平臺(tái)的所有格式;
3、支持Auto Update;
4、支持CLI和JS API兩種使用方式;

研究electron打包的過程中踩了不少坑,打包涉及到不少系統(tǒng)級(jí)別的問題,從最初的選型到最后的成功打包,看似是個(gè)簡(jiǎn)單的過程,但其中仍有一些需要注意到的地方,我在這里分兩點(diǎn)說明:

devDependencies與dependencies的區(qū)別

dependencies 表示我們要在生產(chǎn)環(huán)境下使用該依賴,devDependencies 則表示我們僅在開發(fā)環(huán)境使用該依賴。在打包時(shí),一定要分清哪些包屬于生產(chǎn)依賴,哪些屬于開發(fā)依賴,尤其是在項(xiàng)目較大,依賴包較多的情況下。若在生產(chǎn)環(huán)境下錯(cuò)應(yīng)或者少引依賴包,即便是成功打包,但在使用應(yīng)用程序期間也會(huì)報(bào)錯(cuò),導(dǎo)致打包好的程序無法正常運(yùn)行。

npm與cnpm的區(qū)別

說到npmcnpm的區(qū)別,可能大家都知道,但大家容易忽視的一點(diǎn),是cnpm裝的各種node_module,這種方式下所有的包都是扁平化的安裝。一下子node_modules展開后有非常多的文件。導(dǎo)致了在打包的過程中非常慢。但是如果改用npm來安裝node_modules的話,所有的包都是樹狀結(jié)構(gòu)的,層級(jí)變深。

由于這個(gè)不同,對(duì)一些項(xiàng)目比較大的應(yīng)用,很容易出現(xiàn)打包過程慢且node內(nèi)存溢出的問題(這也是在解決electron打包過程中困擾我比較久的問題,最后想到了npm與cnpm的這點(diǎn)不同,解決了node打包內(nèi)存溢出的問題,從打包一次一小時(shí)優(yōu)化到打包一次一分鐘,極大的提高了效率)。

所以建議大家在打包前,講使用cnpm安裝的依賴包刪除,替換成npm安裝的依賴包。

寫在最后

本次研究electron的目的是為electron自動(dòng)更新做前期準(zhǔn)備,下篇文章我將分享如何實(shí)現(xiàn)electron應(yīng)用的版本更新。由于是初次接觸electron,如讀者在文中發(fā)現(xiàn)錯(cuò)誤,請(qǐng)及時(shí)指正。
如有問題,歡迎私信、微信交流,WeChat:zeus9447
(* ̄︶ ̄)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/93613.html

相關(guān)文章

  • Electron 實(shí)戰(zhàn)桌面計(jì)算器應(yīng)用

    摘要:在菜單中,我想點(diǎn)擊子菜單打開一個(gè)網(wǎng)站,那么就可以用到方法,則會(huì)在默認(rèn)瀏覽器中打開打包應(yīng)用其實(shí)將程序打包成桌面應(yīng)用才是比較麻煩的事。 前言 Electron 是一個(gè)搭建跨平臺(tái)桌面應(yīng)用的框架,僅僅使用 JavaScript、HTML 以及 CSS,即可快速而容易地搭建一個(gè)原生應(yīng)用。這對(duì)于想要涉及其他領(lǐng)域的開發(fā)者來說是一個(gè)非常大的福利。 項(xiàng)目介紹 倉(cāng)庫地址:lin-xin/calculato...

    GeekQiaQia 評(píng)論0 收藏0
  • 使用 electron-vue 構(gòu)建你的桌面應(yīng)用

    摘要:翻譯一下它是一個(gè)運(yùn)行時(shí),可以像一樣這樣執(zhí)行也是一個(gè)使用構(gòu)建跨平臺(tái)原生桌面應(yīng)用的框架。具有兩個(gè)進(jìn)程,分別是主進(jìn)程,以及渲染進(jìn)程。 什么是 electron 官網(wǎng)里這么說:Electron提供了一個(gè)Nodejs的運(yùn)行時(shí),專注于構(gòu)建桌面應(yīng)用,同時(shí)使用web頁面來作為應(yīng)用的GUI,你可以將其看作是一個(gè)由JavaScript控制的迷你版的Chromium瀏覽器。 翻譯一下:它是一個(gè)運(yùn)行時(shí),可以像...

    qieangel2013 評(píng)論0 收藏0
  • 利用 electron-builder 實(shí)現(xiàn) electron app 的署名/打包/發(fā)布以自動(dòng)更

    摘要:筆者系貢獻(xiàn)者之一是什么官方解釋如下簡(jiǎn)單來說,就是一個(gè)可以將打包成安裝器,以及可以為提供自動(dòng)更新功能的全家桶。也是一個(gè)開源的也是利用了的來進(jìn)行新版本的發(fā)布通知。而且因?yàn)槭峭ㄟ^靜態(tài)文件服務(wù)器實(shí)現(xiàn)的,所以大大減少了計(jì)算消耗。 筆者系 electron-builder 貢獻(xiàn)者之一(#12) electron-builder 是什么 官方解釋如下: A complete solution to ...

    banana_pi 評(píng)論0 收藏0
  • electron+vue制作桌面應(yīng)用--前言

    摘要:最近學(xué)習(xí),發(fā)現(xiàn)一個(gè)腳手架,不僅集成好了等等,甚至打包工具打包命令都一并準(zhǔn)備好了,實(shí)在是太方便了。于是產(chǎn)生了通過制作一個(gè)簡(jiǎn)單的桌面應(yīng)用,邊做邊學(xué)的想法。 最近學(xué)習(xí)vue,發(fā)現(xiàn)一個(gè)electron腳手架,不僅集成好了electron、vue、vue-state、vue-route、webpack等等,甚至打包工具打包命令都一并準(zhǔn)備好了,實(shí)在是太方便了。于是產(chǎn)生了通過electron+vue...

    fxp 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<