2017-08-31 180 views
0

我是Electron的新手,我正在構建一個我想在Windows上安裝的應用程序。 我讀了如何在電子的docs分發您的應用程序的文檔,我知道:電子鏈msi安裝程序

electron-forge 
electron-builder 
electron-packager 

目前我的工作:

"electron-builder-squirrel-windows": "^19.20.0", 
"electron-builder": "^19.20.0", 
"electron": "^1.6.11" 

鑑於此,我能創造一個Setup.exe來安裝我的應用程序,但我是 無法爲安裝過程創建任何用戶界面。

我想給的選項給用戶,如果他需要改變安裝路徑,顯示最終許可證我要他接受,...

沒有這方面的信息在electron.atom.io

給出

看看Atom編輯器或Slack,這是用Electron構建的,我可以看到在安裝過程中可以顯示一些UI。這通常如何完成?

編輯: 我剛剛看了一下windows-installer,你需要使用松鼠事件這個 編輯編輯:

  • 更改標題爲「鏈式MSI安裝程序與電子」

公告當安裝程序第一次啓動您的應用程序時,您的應用程序將看到--squirrel-firstrun標誌。這使您可以執行諸如顯示啓動畫面或呈現設置UI等內容。

回答

1

作爲替代使用開發Windows MSI安裝交付整個電子封裝堆疊,可以考慮使用以下機制作爲另一個有用的解決方案:

  1. 的WebPack - 來構建應用程序的客戶端分配
  2. 電子打包 - 打造您的電子二進制文件(在這種情況下 適用於Windows)
  3. 的WiX工具集 - 構建Windows MSI安裝程序。

當然,無論您選擇使用哪種安裝程序,您都必須執行第1步和第2步。我發現webpack是用於打包角度網絡應用程序(這是我工作的)最穩定,可配置和完整的解決方案,而electron-packager是您無法使用的一種工具,如果您想實際構建平臺特定的二進制文件爲您的應用

在我們的例子中,我使用gulp腳本來包裝webpackelectron-packager模塊,這是我爲了通過他們的API,而不是他們的命令行衍生品叫它們保持一致的JavaScript的背景下,易於維護和錯誤的處理構建過程(命令行解決方案比javascript,imo中的包,模塊,文件和函數更難以進行範圍和重用)。

通過了解我指的是什麼類型的項目,可以更容易地解釋這一點。這是特別是如果你正在建設,有一個完整的項目結構,像這樣的電子申請:

C:. 
+---assets/ 
+---ClientSide 
¦ +---index.html 
¦ +---app 
¦ ¦ +---app.component.ts 
¦ ¦ +---app.module.ts 
¦ ¦ +---main.ts 
¦ ¦ +---AppContent/ 
¦ ¦ +---help/ 
¦ ¦ +---modals/ 
¦ ¦ +---panels/ 
¦ ¦ +---shared/ 
¦ +---Styles 
¦ ¦ +---dist/ 
¦ ¦ +---svgs/ 
¦ +---test 
¦  +---AppContent/ 
¦  +---modals/ 
¦  +---panels/ 
¦  +---shared/ 
+---dist/ 
+---edist 
| \---Application-win32-ia32 [*location of binary source for the install] 
+---ServerSide 
¦ +---app.js 
¦ +---server.js 
¦ +---test/ 
+---Installer 
    +---buildMSI.bat 
    +---Application/ 

gulpfile.js 
karma.conf.js 
main.js 
package.json 
README.md 
webpack.config.js 

這種結構表明,有所有你想要在真實的開發環境,例如在部分項目作爲webpack,配置,karma(客戶端測試),包裝操作(包裝操作,webpack,電子包裝器),用於運行WiX命令的Windows批處理文件,等等。

這種做法的流動將(可能記錄在您的README.md)像這些步驟爲新用戶設置和建設項目:

  1. git clone <project/path> - 克隆回購到本地機器
  2. npm install - 加載/安裝node_modules
  3. gulp lint - 驗證代碼並生成CI結果。 (您棉短絨的選擇)
  4. gulp test - 運行服務器端和客戶端單元測試,爲每個
  5. gulp build_web_client代碼覆蓋率CI成果 - 建立使用webpack API調用客戶端的Web項目。這應該會產生一個名爲「dist」的目錄,該目錄在項目
  6. gulp build_electron_app下創建 - 使用electron-packager API構建Electron可執行文件。這應該產生一個在項目下創建的名爲「edist」的目錄。
  7. cd Installer
  8. buildMSI.bat - 此Windows批處理腳本應該做以下步驟:
    1. 準備通過收穫/ edist目錄的內容列表清單文件(導致.wxs文件)(見於目錄樹結構上方,並通過步驟6中創建的),通過使用維克斯命令heat.exe
    2. 預處理和工程編譯成和對象(.wixobj)使用維克斯命令candle.exe
    3. 鏈路的維克斯項目成其最終可安裝文件形式使用Wix命令Light.exe,生成安裝MSI文件。

這只是一個建議。當然,您可以根據自己的選擇,爲每個步驟使用其他工具。這只是我發現的一種方法,適用於部署到Windows目標的電子應用程序的開發。關於這一點的好處是,使用Electron,您可以選擇使用步驟1-6來構建到許多目標操作系統,如果您想要轉到Windows或Mac,Linux執行步驟7和步驟8,則可以採用不同的部署方法。

是的,這是事實,你可以使用(對於那些簡單的需求或electron-forgeelectron-builder通過鬆鼠打包你的應用程序,以此來部署,以提供給電子(這將意味着更換我的步驟7和8的所有操作系統與那些包裝替代品)。從我的經驗,併爲我們的背景下,松鼠解決Windows部署似乎比使用維克斯部署不太理想。

您關於可配置到安裝原來的問題,關於使用維克斯的好處是,你得到它完全自定義安裝的用戶界面和體驗(包括目標尋路)的能力。

+0

你覺得我可以用電子編譯取代的WebPack?我的項目是用'electron-forge init'創建的 – Carlinho89

0

當您使用松鼠時,無法在Windows上選擇安裝路徑。它似乎也不會在未來。他們不想支持這一點。 See herehere