1

電子アプリケーションでアプリケーション設定を管理する方法がわかりました?ユーザー設定の管理に関してアプリケーションの設定の管理に関連するものが見つかりませんでしたが、私はここで優れたリソース(Where to store user settings in Electron (Atom Shell) Application?など)を見つけました。電子アプリケーションでアプリケーション設定を管理する

私にとって、アプリケーション設定は環境によって異なります(dev/test/production)が、アプリケーションのすべてのユーザーにとって同じままであるということです。 APIエンドポイントなどが含まれています。一方、ユーザー設定は、ウィンドウの幅や高さなどの設定に基づいてユーザーごとに変更されます。

これまで行ってきたことはありますか?

この優秀なパッケージconfigが見つかりました。私のプロジェクトでそれを使い始めました。指示に基づいて、私はconfigフォルダとデフォルト設定ファイルを作成しました(後で環境固有の設定ファイルを作成します)。

enter image description here

それは限り、私は、アプリケーションを開発していて正常に動作しています。アプリケーションは、configフォルダからdefault.jsonファイルを適切に取り出し、これらの設定を正しく適用しています。

問題は、アプリケーション(MSI、DMGなど)をパッケージ化するときに発生します。私はその目的のためにelectron-builderパッケージを使用しています。

configパッケージの問題点は、アプリケーションの現在の作業ディレクトリ内にconfigというフォルダがあり、アプリケーションがインストールされているフォルダで見つからないため、単にエラーがスローされるということです。私は手動でこのフォルダを私のappフォルダ(電子ビルダーがパッケージを作る場所)にコピーしようとしましたが、それも役に立たなかった。理想的には、アプリケーションの設定をアプリケーションのASARファイルにバンドルして、逆コンパイルできないようにします。

私の質問は以下のとおりです。

  • はどのように人々は、電子アプリケーションのためのアプリケーション設定を管理していますか?
  • config NPMパッケージを使用できますか?あるいは、電子アプリケーション専用のパッケージに代わるものがありますか?

答えて

1

私はnpmパッケージを使用していませんが、私のアプローチはあなたの言葉に似ています。私は、異なる環境のための異なる設定ファイルを持つconfigディレクトリを持っています:dev、test、prod。次に、私のpackage.jsonで環境固有のビルドコマンドを追加しました。例えば製品の場合:

"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; 

私は自分のアプリケーションに必要な設定を必要とし、その値を使用します。これは今のところ簡単なことですが、あなたがリンクしているconfigパッケージの柔軟性はないかもしれませんが、うまくいきます。

また、別の重要なことは、アプリケーションをASARアーカイブにパッケージングしていないということですが、webpackを使用してすべてをバンドルに入れているため、私のアプローチはまだ機能すると思います。

+0

ありがとうございます。私はそれを試してみましょう。私は私が持っているかもしれない質問で元に戻します。 –

+0

@ GauravMantriこの問題の解決策を見つけましたか? –

+0

@ラッキー...私はやった...それは受け入れられた答えに基づいていた。答えとして私たちがしたことを含めてみましょう。 –

関連する問題