1. 程式人生 > >Electron學習開發之--構建完整工程並打包

Electron學習開發之--構建完整工程並打包

由於官方文件又比較生澀且沒有例子可參考,因此抽出時間整理了一篇文章,希望能夠幫助入坑的小夥伴!

0、說在前面的話

專案:官網electron-quick-start專案

專案使用環境:win10 64位

使用命令:npm

依賴:Node.js

特別鳴謝:本文中大量引用官網、程式如此靈動網站、CSDN博文、簡書博文等,感謝這些文章的作者。在參考文件中給出了這些引用的原文連結。

1、構建electron專案

下載electron-quick-start(該博文全部使用npm,所以需要安裝node,安裝過程自行百度)

並執行該專案

# Clone the Quick Start repository
git clone https://github.com/atom/electron-quick-start

# Install the dependencies and run
npm install && npm start

令執行結果如下:

這裡寫圖片描述這裡寫圖片描述這裡寫圖片描述

注意:

1、除了使用上述命令下載electron-quick-start專案程式碼外,還可以直接到GitHub上下載該專案。

2、下載下來的electron-quick-start專案的package.json檔案中的electron版本可能已經過時了,此時在執行npm install&&npm start時會報錯。
錯誤類似如下:
    Downloading electron-v0.34.3-win32-ia32.zip
    Error: read ECONNRESET
這個錯誤說明兩個問題:1)需要升級electron;2)網路連線問題
所以針對上述兩個問題可以做如下處理:
    1)先說網路問題
    解決辦法:更換源為淘寶
    更換方法:執行如下兩條命令(更多資訊可檢視參考文件《開發electron程式的npm準備工作》)
        npm config set registry https://registry.npm.taobao.org/
        npm config set electron_mirror http://npm.taobao.org/mirrors/electron/
    2)升級electron,有兩種方法:
        一個是忽略,網路連線成功後,會在執行 npm install && npm start後會自動升級;
        二是手動執行 npm install electron --save-dev
3、特別提示,這些命令都需要在檔案當前路徑下執行

此,簡單的demo就算執行出來了。

2、打包

對electron專案打包方法有很多,常用的有兩種:electron-packager和electron-builder  這些打包方法都需要根據專案中的package.json檔案進行。欄位全解可以參考package.json欄位全解。下面在具體介紹兩種方法時也會有修改,請注意。

electron-packager

下面的僅僅是個範例,不能保證和你的實際情況相吻合。

electron-packager . --overwrite --platform=darwin --arch=x64 --out=out --icon=assets/app-icon/mac/app.icns --osx-sign.identity='Developer ID Application: GitHub' --extend-info=assets/mac/info.plist

electron-packager . --overwrite --platform=win32 --arch=ia32 --out=out --icon=assets/app-icon/win/app.ico

electron-packager . --overwrite --platform=linux --arch=x64 --out=out

electron-packager 的安裝(electron-packager依賴Node.js,需要提前安裝好)

# for use in npm scripts
npm install electron-packager --save-dev

# for use from cli
npm install electron-packager -g

注意:上面兩步操作都是必須的。

使用方法

使用方法參見上面範例中給出的三種方式。同時,可以將其放入package.json中,直接執行npm run package即可完成打包,如下

"scripts": {
    "package": "electron-packager . --platform=win32 --arch=ia32 --electron-version=1.4.15 --overwrite --ignore=node_modules --ignore=.gitignore"
},

例中,我的系統是win10,64位,該專案version是1.0.0,打包後項目名稱為helloworld,放在專案當前路徑下。所以修改之後的命令如下:

"scripts": {
    "start": "electron .",
    "package":"electron-packager . helloworld --platform=win32 --arch=x64 --electron-version=1.0.0 --overwrite --ignore=node_modules --ignore=.gitignore"
  },

行打包命令

npm run package

執行結果

這裡寫圖片描述

在當前專案下生成一個helloworld-win32-x64的資料夾,裡面有一個名為helloworld.exe的可執行檔案。 這裡寫圖片描述

至此,使用electron-packager打包專案完成。想了解更多關於electron-packager,可以閱讀electron-packager常用Electron App打包工具  如果想替換icon,只需要在命令後邊加上–icon=your-icon-path/app.ico即可。

electron-builder

builder --mac
builder --win
builder --linux

安裝electron-builder

# for use in npm scripts
npm install electron-builder --save-dev

修改package.json

將如下內容是放入package.json。對於build中每個屬性的解讀,請閱讀Electron學習筆記Part3-利用Electron builder應用打包EXE。本例中,專案名稱為electron-quick-start,appId使用productName

"build": {
    "productName": "electron-quick-start",
    "appId": "electron-quick-start",
    "directories": {
      "output": "build"
    },
    "files": [
      "./*"
    ],
    "dmg": {
      "contents": [
        {
          "x": 410,
          "y": 150,
          "type": "link",
          "path": "/Applications"
        },
        {
          "x": 130,
          "y": 150,
          "type": "file"
        }
      ]
    },
    "mac": {
      "icon": "build/icons/icon.icns"
    },
    "win": {
      "icon": "assets/app-icon/win/app.ico"
    },
    "linux": {
      "icon": "build/icons"
    }
  }

這裡需要注意兩點:

1、files屬性裡寫的是指定被打包的檔案,可以忽略不需要打包的檔案。根據我的檔案結構,我將其改成"./*",意思是當前目錄下的全部檔案。
2、如果需要修改icon,將icon的路徑指定到相應的目錄即可。

執行打包命令

electron-builder --win

打包結果

這裡寫圖片描述

參考文件