我可以使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的。