2016-12-03 23 views

答えて

5

いいえkeyにYAMLファイルの削除をマークする方法はありません。あなたはoverwrite existing valuesしかできません。

image: null # delete 

あなたが行うことができる2つのものがあります:ポストプロセスまたはメイク

、後者

は、あなたが何をすべきか、あなたが書かれていたかのように、あなたがキー imageに値として空のスカラーを関連付けるですあなたのYAMLファイルのベースマッピング。

後処理を行う場合は、特別な一意の値をimageまたは特別にタグ付けされたオブジェクトに関連付けます。この特殊な値を持つキーと値のペアを削除するために、ツリーを再帰的に読み込みます。の解析中に既にを実行できるかどうかにかかわらず、フックを使用するか、そのメソッドの一部を上書きするかどうかは、パーサーによって異なります。ベースのマッピングを使用して

が少なく作業が必要ですが、YAMLファイルにより侵入です:

localbase: &lb 
    # *tons of config* 

local: &local 
    image: xxx 

ci: 
    <<: *lb 
    build: . 

あなたがかつての操作を行う場合は、あなたが「マージ・階層を」保存するパーサを使用する場合に注意すべきです(私のruamel.yamlパーザができるような)ラウンドトリップでは、キーと値のペアを削除するだけでは十分ではありません。その場合は、オリジナルがlocalから復帰します。読み込み時にこれを単に解決する他のパーサには、この問題はありません。

関連する問題