9

ユーザーが指定した値を保存する必要がある nodejs cli ユーティリティ (グローバルにインストールすることを目的とした NPM モジュール) を作成しています。これらの値をシステムに保存する最良の方法は何ですか?

たとえば、次のように独自の構成ファイルを作成し、/etc/{my-utility-name}/conf.jsonこのディレクトリとファイルをinstallスクリプトで初期化する必要があります

( https://npmjs.org/doc/misc/npm-scripts.html )

4

4 に答える 4

1

以下を含む NodeJS アプリ構成を管理するcli-config API を作成しました。

  • パッケージのデフォルト
  • ローカル ユーザー構成
  • コマンド ライン オプション
  • アプリのオーバーライド

詳細については、 https://github.com/tohagan/cli-configをご覧 ください。

例 1:

パッケージ ファイルから構成オプションを組み合わせdefaults.config、次に~/.<appname>.configコマンド ライン オプションを組み合わせてから、debugオプションを強制的にtrue. 浅いマージを使用するため、最上位のプロパティのみがマージされます。

var config = require('../cli-config')
             .getConfig({dirname: __dirname, override: {debug: true}});

例 2:

パッケージからネストされた構成設定をディープ マージし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'                
});

例 3:

コマンド ライン パーサーは、システム設定またはユーザー設定オプションをオーバーライドするために使用できるオブジェクトを返します。このパーサーは、cliオプションを使用して構成できます。コマンドライン解析オプションの詳細については、 minimistを参照してください。

var config = require('../cli-config').getConfig({
    dirname: __dirname,
    cli: { 
        boolean: {
            'd': 'debug',
            'v': 'verbose'
        } 
    } 
});

config.debug および config.verbose オプションを true に設定します。

$ myapp -d -v  
于 2014-07-20T15:05:32.177 に答える
1

設定の数が限られている場合は、JSON ファイルで十分です。より精巧なセットまたは構成がある場合は、簡単に検索できるように、SQLite ファイルのようなものを使用することを検討してください。

とにかく、昇格されたアクセス許可を必要としないディレクトリにそのファイルを保存します。また、ユーザーに固有の場合は、ファイルをユーザーのホーム ディレクトリに保存することを検討してください。

于 2013-10-18T05:06:07.067 に答える