iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
Modern Web

ElectronJS系列 第 6

[ Day 6 ] - 桌面小圖示(五) - 用 electron-builder 打包應用程式給其他人

  • 分享至 

  • xImage
  •  

如果昨天沒有做出來 , 可以從 第 5 天成品 然後用 npm start 看到許多的貓咪 haha-man


當我們製作完成可愛的小貓應用程式 , 我們當然希望分享給其他人這可愛的小貓 ,
可是我們不可能強求其他人知道如何使用 npm 指令去執行這隻應用程式對吧 !

因此我們需要將應用程式打包成 .exe 檔 , 然後將 .exe 檔分享給其他人使用

以下我們使用 electron-builder 作為我們的打包工具 ,
如要使用其他其他打包工具可參考官方文件

打包 Windows 應用程式

我們拿 第 2 天成品 來打包

下載 electron-builder

# 下載 electron-builder 套件
$ npm i -D electron-builder

追加一個 build.js 用於打包應用程式

const path = require('path');
const builder = require('electron-builder');

builder.build({

    projectDir: path.resolve(__dirname),  // 專案路徑 

    win: ['nsis', 'portable'],  // nsis . portable
    config: {
        "appId": "com.andrewdeveloper.electron.cat",
        "productName": "小貓玩耍", // 應用程式名稱 ( 顯示在應用程式與功能 )
        "directories": {
            "output": "build/win"
        },
        "win": {
            "icon": path.resolve(__dirname, 'cat.png'),
        }
    },
})
    .then(
        data => console.log(data),
        err => console.error(err)
    );

執行 build.js

# 執行 build.js 
$ node build.js 

第一次打包時 , 會從 electron-builder 的官網上下載一些打包工具 , 需要等一段時間下載這些工具 ( 可能需要等待 1 個小時左右 )

打包完成後 , 在專案根目錄中 , 會多出一個 build 資料夾 , 當中會有打包出來的 .exe 檔

我們可以將 小貓玩耍 Setup 0.0.2.exe 檔案分享給別人 , 讓人安裝 小貓玩耍 這個應用程式

安裝完成後 , windows 中的 應用程式與功能 可以看到這個應用程式

如果對方電腦沒有安裝 .exe 的權限 , 我們可以將 小貓玩耍 0.0.2.exe 分享給別人 , 這是一個免安裝軟體

備註

我們可以更改打包後的 ICO 圖示 ,

但是 windows 上的 icon 需要使用 256*256 以上的 png 檔案當作 Icon , 不然打包時會出現以下錯誤

一個意外

打包結束後 , 會多出一個 build 資料夾

其中有一個 win-unpacked 的資料夾 , 最初我以為直接 zip 起來 , 可以當免安裝軟體給其他人使用

結果 , 在沒有安裝 Node.js 的電腦上打開後 , 產生無限開啟的現象 /images/emoticon/emoticon04.gif

(坑) 不要把資料夾的檔案當成免安裝軟體 zip 給別人 , 當其他人的電腦中沒有安裝 Node.js 時 ,

你會的到無限開啟的應用程式

之後我才發現要打包成免安裝軟體 ,
需要將 win 區塊從 nsis 改成或多加 portable 這時會多一個 [檔名_版本].exe 檔案 , 檔名_版本.exe
你可以將此 exe 檔案分享給別人 ,
其他沒有安裝 Node.js 的機器才能正常使用此應用程式 ,
上述的 .exe 檔才是真的免安裝軟體 /images/emoticon/emoticon10.gif

參考資料

今年小弟第一次參加 `鐵人賽` , 如文章有誤 , 請各位前輩提出指正 , 感謝  <(_ _)>

上一篇
[ Day 5 ] - 桌面小圖示(四) - 系統通知區與縮小的貓咪
下一篇
[ Day 7 ] - electron 學習資源列表
系列文
ElectronJS38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
King Tzeng
iT邦新手 3 級 ‧ 2020-09-07 10:08:31

要一小時..../images/emoticon/emoticon04.gif

Tree iT邦新手 3 級 ‧ 2020-09-07 10:19:02 檢舉

我是用手機的 4G 網路下載的 , 那時下載時間約 1 小時 , 不過下載一次 electron-builder 打包工具之後就不用再下載了 ! ( 他是全域安裝的那種 )

我要留言

立即登入留言