2013-09-02 4 views
13

あなたはNPMパッケージをインストールし、適切な依存関係プロパティであなたのpackage.jsonファイルにパッケージを記述すること--save--save-devまたは--save-optionalオプションを使用すると、ファイル全体では2スペースのインデントに書き換えることが表示されます。npmのインストールを特定のpackage.json形式にすることはできますか?

$ cat package.json 
{ 
    "name": "my-package" 
} 

$ npm install --save another-package && cat package.json 
{ 
    "name": "my-package", 
    "dependencies": { 
    "another-package": "~0.1.5" 
    } 
} 

npmを既存のフォーマットに従う方法や、package.jsonファイルのカスタムフォーマット(例えば4スペースインデント)を指定する方法はありますか?

npm options documentationに何も見つかりません。

答えて

10

npm sourceを掘り下げたあと、残念ながら私の質問に対する答えは間違いなく「ノー」と思われます。 npm installが「保存」のいずれかのオプション、following happensで実行されている場合:

fs.readFile(saveTarget, function (er, data) { 
    try { 
    data = JSON.parse(data.toString("utf8")) 
    } catch (ex) { 
    er = ex 
    } 
    // ... 
    data = JSON.stringify(data, null, 2) + "\n" 
    fs.writeFile(saveTarget, data, function (er) { 
    cb(er, installed, tree, pretty) 
    }) 
}) 

重要な行はJSON.stringifyへの呼び出しです。第3引数を使用してstringifyを呼び出す場合、返される文字列インデントは、指定された数のスペースでフォーマットされます。

npmで使用される値を内部的にカスタマイズする方法がないため、この動作は現在設定できません。

+4

Npmはプル要求を受け入れますが、 'package.json'を書いているすべてのnpmコマンドにフォーマッタをつけることができれば嬉しいです。例えば' require( 'format-json').diryを現在のものの代わりに選ぶことができますハードコードされたストリンジェント。 – ecmanaut

+0

@ecmanaut - この問題を解決しようとしているPRはありますか? –

+0

IIRC、私は受け入れられるかどうかを調べ、しっかりしたノーを得て、それを残しました。 (だから私からではなく、おそらく他の人から) – ecmanaut

関連する問題