5

Electron アプリケーションでアプリケーション設定を管理する方法を知りたいです。ユーザー設定の管理に関しては、ここ (たとえば、Electron (Atom Shell) アプリケーションでユーザー設定を保存する場所) や他の場所でいくつかの優れたリソースを見つけましたが、アプリケーション設定の管理に関連するものは見つかりませんでした。

私にとって、この 2 つの違いは、アプリケーションの設定が環境 (開発/テスト/運用) によって異なる可能性があるが、アプリケーションのすべてのユーザーに対して同じままであることです。それらには、API エンドポイントなどが含まれます。一方、ユーザー設定は、ウィンドウの幅/高さなどの好みに基づいて、ユーザーごとに変更されます。

私はこれまでに何をしてきましたか?

この優れたパッケージと呼ばれるものを見つけてconfig、プロジェクトで使用し始めました。指示に基づいて、configフォルダーとデフォルトの構成ファイルを作成しました (後で環境固有の構成ファイルを作成します)。

ここに画像の説明を入力

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

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

configpackageの問題はconfig、アプリケーションの現在の作業ディレクトリ内のフォルダーを探し、アプリケーションがインストールされているフォルダーで見つからないため、単純にエラーをスローすることです。このフォルダーを自分のappフォルダー (electron-builder がパッケージを作成する場所) に手動でコピーしようとしましたが、それも役に立ちませんでした。理想的には、アプリの設定をアプリケーションの ASAR ファイルにバンドルして、逆コンパイルできないようにしたいと考えています。

私の質問は次のとおりです。

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

1 に答える 1

1

私は npm パッケージを使用していませんが、私のアプローチはあなたが言及したものと似ています。環境ごとに異なる構成ファイルを含む構成ディレクトリがあります: 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 を要求し、値を使用します。これは今のところ単純なことであり、おそらくリンク先の構成パッケージの柔軟性はありませんが、機能します。

また、もう 1 つの重要なことは、アプリケーションを ASAR アーカイブにパックしていないことですが、webpack を使用してすべてをバンドルにパックしているため、私のアプローチは引き続き機能すると思います。

于 2016-10-21T18:36:33.410 に答える