安装npm软件包并使用--save
,--save-dev
或--save-optional
选项将软件包写入相应依赖项属性中的package.json文件时,将显示整个文件要用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空格缩进)?
我在npm options documentation中找不到任何内容。
答案 0 :(得分:11)
在挖掘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
的调用。使用第三个参数调用stringify
时,返回的字符串缩进的格式为指定的空格数。
由于无法在内部自定义npm使用的值,因此此行为目前是不可配置的。
答案 1 :(得分:1)