2013-09-02 14 views
13

Bir npm paketini yüklemek ve uygun bağımlılıkları özelliğinde senin package.json dosyasına paketi yazmak için --save, --save-dev veya --save-optional seçenekleri kullandığınızda, tüm dosya 2-uzay girinti ile tekrar yazılabilir görünmektedir:Npm yüklemesini belirli bir paket.json biçiminde yapabilir miyim?

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

$ npm install --save another-package && cat package.json 
{ 
    "name": "my-package", 
    "dependencies": { 
    "another-package": "~0.1.5" 
    } 
} 
npm mevcut biçimi izler veya package.json dosyası için özel bir biçim (örneğin 4-uzay girinti) specifiy yapmak için herhangi bir yolu

var mı?

ben npm options documentation şey bulamıyorum.

cevap

10

npm source'u kazandıktan sonra, maalesef sorumu yanıtın kesinlikle "hayır" olduğu ortaya çıkıyor. npm install "kaydet" seçeneklerden biri, following happens ile yürütüldüğünde:

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) 
    }) 
}) 

önemli hat JSON.stringify için çağrıdır. Üçüncü bağımsız değişkenle stringify çağrılırken, döndürülen dize girintisi belirtilen sayıda boşlukla biçimlendirilir. içten NPM kullandığı değerini özelleştirmek için hiçbir şekilde olduğundan

, bu davranış şu anda olmayan yapılandırılabilir.

+4

NPM olsa çekme isteklerini kabul etmez. 'Package.json' yazan tüm npm komutları için bir biçimlendiriciyi takabilmemiz harika olurdu, bu yüzden '' demand-json '' yerine '' pick-json '' diyebilirdik. kodlanmış bağlayıcı. – ecmanaut

+0

@ecmanaut - Bu sorunu çözmeye çalışan PR'ler var mı? –

+0

IIRC, Bir kişinin kabul edilip edilmeyeceğini araştırdım ve sağlam bir hayır aldım ve bunu bıraktım. (Yani: benden değil, diğerlerinden belki.) – ecmanaut

İlgili konular