有没有办法在不安装包的情况下按字母顺序包装package.json?

时间:2015-12-23 15:05:30

标签: npm

我一直在处理许多旧的npm软件包,这些软件包的依赖项全部乱序。他们收缩包裹,因此更新依赖关系是一项工作(测试和验证依赖关系更改没有破坏任何东西),但我手动移动了devDependencies的一些依赖关系dependencies密钥的关键字,除了按字母顺序排列之前我不想做任何事情。而不是手动操作,是否有一种简单的方法可以用npm以编程方式对它们进行字母顺序排列?

6 个答案:

答案 0 :(得分:48)

只需运行"A"String,npm就会对该部分进行排序,而不会实际触及任何内容。当然,你应该确保你传递的软件包名称(可以是任何东西,键盘垃圾邮件)不在你的package.json中。

答案 1 :(得分:34)

sort-package-json package不仅对dependenciesdevDependencies进行排序,还对其他键进行排序。我知道原始问题没有询问其他密钥,但我觉得将所有密钥排序都很酷。

包页面中的示例:

$ cd my-project

$ cat package.json
{
  "dependencies": {},
  "version": "1.0.0",
  "keywords": [
    "thing"
  ],
  "name": "foo"
}

$ npm i -g sort-package-json

$ sort-package-json
Ok, your package.json is sorted

$ cat package.json
{
  "name": "foo",
  "version": "1.0.0",
  "keywords": [
    "thing"
  ],
  "dependencies": {}
}

这不会删除跟Wolfgang提到的npm-sort包之类的尾部换行符。

答案 2 :(得分:14)

除了martias答案外,您还可以运行:

npx sort-package-json

这不会永久安装。您需要npm> 5.2。

答案 3 :(得分:5)

我找到了npm-sort package,它看起来效果很好,并且轻微的一点就是它从package.json文件中删除了尾随的换行符。

答案 4 :(得分:0)

您可能还想看一下fixpack,这是一个CLI(CLI),用于按照(有些许)观点对package.json进行更新。但是,您可以添加.fixpackrc来定义自己的规则,默认值为:

  • 名字优先
  • 描述第二
  • 第三版
  • 作者第四
  • 所有其他键均按字母顺序
  • 依存关系和devDependencies按字母顺序排序
  • 文件末尾的换行符

答案 5 :(得分:-1)

在VS代码中,有一个很好的打包程序或整个json文件。

还有一种叫做“分类器”的东西,它可以分类得更多而且很棒。