2016-10-20 61 views
1

我很好奇,想知道如何能一個在電子申請管理應用程序設置應用程序設置?我在這裏找到了一些優秀的資源(例如Where to store user settings in Electron (Atom Shell) Application?)和其他地方,當涉及到管理用戶設置時,卻找不到與管理應用程序設置相關的任何內容。管理在電子申請

對我來說,這兩者之間的區別是,應用程序設置可以從環境而有所不同環境(開發/測試/生產),但將保持對應用程序的所有用戶都相同。它們將包含API端點等內容。另一方面,用戶設置會根據用戶的偏好(如窗口寬度/高度等)根據用戶的偏好進行更改。

我到目前爲止所做的工作?

我發現這個極好的包叫做config,並開始在我的項目中使用它。根據說明,我創建了一個config文件夾和一個默認配置文件(稍後我將創建特定於環境的配置文件)。

enter image description here

它只要細如我開發應用工作。該應用程序正在從config文件夾中正確提取default.json文件,並正確應用這些設置。

問題是當我打包應用程序(MSI,DMG等)。我正在使用electron-builder包。

config軟件包的問題在於它在應用程序的當前工作目錄內查找config文件夾,並且因爲它在安裝應用程序的文件夾中找不到它,所以它只會引發錯誤。我甚至試圖手動將這個文件夾複製到我的app文件夾中(這是電子製造商製作軟件包的地方),但這也沒有幫助。理想情況下,我希望將應用程序的ASAR文件中的應用程序設置綁定,以便無法反編譯。

我的問題是:

  • 爲電子申請的人是如何管理應用程序的設置?
  • config NPM包使用是什麼?或者是否有專門用於Electron應用程序的替代方案?

回答

1

我沒有使用npm軟件包,但我的方法與您提到的類似。我有一個不同的配置文件的config目錄,適用於不同的環境:dev,test,prod。然後在我的package.json中添加了特定於環境的構建命令。例如對於prod:

"build-prod-config": "config/buildProdConfig.sh", 
"build-renderer-prod": "webpack --config=webpack.config.renderer.prod.js", 
"build-main-prod": "webpack --config=webpack.config.main.prod.js", 
"build-prod": "npm run build-prod-config && npm run build-main-prod & npm run build-renderer-prod", 

buildProdConfig.sh 
#!/usr/bin/env bash 

cp config/app.config.prod.js config/app.config.js 
echo "Copied ProdConfig to Config" 

//This is what a config file looks like 
const Config = { 
    suppDataDirectoryPath: '/suppData/', 
    builtFor: 'prod', 
} 

module.exports = Config; 

然後,我需要配置我需要在我的應用程序和使用值。目前這是一件簡單的事情,也許沒有你鏈接到的配置包的靈活性,但它可以工作。另外,另一個重要的事情是,我沒有將我的應用程序打包到ASAR存檔中,但我認爲我的方法仍然可行,因爲我使用webpack將所有內容打包成了一個包。

+0

謝謝沙市。讓我試試看。我會回覆任何我可能遇到的問題。 –

+0

@GauravMantri你找到解決這個問題的方法嗎? –

+0

@Lucky ...我的確......這是基於公認的答案。讓我包括我們做的答案。 –