我可以使npm安装遵循一定的package.json格式?

当你安装一个npm软件包并使用--save ,– --save-dev或者--save-optional选项将软件包写入你的package.json文件中相应的dependencies属性中时,整个文件似乎被重写为2 – 空格缩进:

 $ 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-space indentation)?

我在npm选项文档中找不到任何东西。

在通过npm源文件挖掘之后,不幸的是,我的问题的答案肯定是“不”。 当使用其中一个“保存”选项执行npm install , 会发生以下情况 :

 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的调用。 使用第三个参数调用stringify时,返回的string缩进格式化为指定数量的空格。

由于无法自定义npm内部使用的值,因此此行为是不可configuration的。