ユーザーが指定した値を保存する必要がある nodejs cli ユーティリティ (グローバルにインストールすることを目的とした NPM モジュール) を作成しています。これらの値をシステムに保存する最良の方法は何ですか?
たとえば、次のように独自の構成ファイルを作成し、/etc/{my-utility-name}/conf.json
このディレクトリとファイルをinstall
スクリプトで初期化する必要があります
ユーザーが指定した値を保存する必要がある nodejs cli ユーティリティ (グローバルにインストールすることを目的とした NPM モジュール) を作成しています。これらの値をシステムに保存する最良の方法は何ですか?
たとえば、次のように独自の構成ファイルを作成し、/etc/{my-utility-name}/conf.json
このディレクトリとファイルをinstall
スクリプトで初期化する必要があります
以下を含む NodeJS アプリ構成を管理するcli-config API を作成しました。
詳細については、 https://github.com/tohagan/cli-configをご覧 ください。
パッケージ ファイルから構成オプションを組み合わせdefaults.config
、次に~/.<appname>.config
コマンド ライン オプションを組み合わせてから、debug
オプションを強制的にtrue
. 浅いマージを使用するため、最上位のプロパティのみがマージされます。
var config = require('../cli-config')
.getConfig({dirname: __dirname, override: {debug: true}});
パッケージからネストされた構成設定をディープ マージしdefaults.config
、次に./config.json
コマンド ライン オプションをマージします。./config.json
が存在しない場合は、コピーを複製しdefaults.config
て、ユーザーがそれを使用しdefaults.config
て将来オーバーライドできるようにします。
var config = require('../cli-config').getConfig({
dirname: __dirname,
clone: true,
configFile: './config.json',
merge: 'deep'
});
コマンド ライン パーサーは、システム設定またはユーザー設定オプションをオーバーライドするために使用できるオブジェクトを返します。このパーサーは、cliオプションを使用して構成できます。コマンドライン解析オプションの詳細については、 minimistを参照してください。
var config = require('../cli-config').getConfig({
dirname: __dirname,
cli: {
boolean: {
'd': 'debug',
'v': 'verbose'
}
}
});
config.debug および config.verbose オプションを true に設定します。
$ myapp -d -v
設定の数が限られている場合は、JSON ファイルで十分です。より精巧なセットまたは構成がある場合は、簡単に検索できるように、SQLite ファイルのようなものを使用することを検討してください。
とにかく、昇格されたアクセス許可を必要としないディレクトリにそのファイルを保存します。また、ユーザーに固有の場合は、ファイルをユーザーのホーム ディレクトリに保存することを検討してください。