Npm 有没有一种方法可以在不安装包的情况下按package.json的字母顺序排列?

Npm 有没有一种方法可以在不安装包的情况下按package.json的字母顺序排列?,npm,Npm,我一直在处理很多旧的npm包,它们的依赖关系都是无序的。它们是收缩包装的包,因此更新依赖项是一项工作(测试并验证依赖项更改没有破坏任何内容),但我正在手动将一些依赖项从devdependency键移动到dependencies键,并且我不想做任何事情,除了在提交之前按字母顺序排列它们。与手动操作相比,有没有一种简单的方法可以通过npm以编程方式按字母顺序排列它们呢?我发现,小麻烦是它从package.json文件中删除了尾随的换行符。只需运行npm-remove——保存任何内容或npm-remo

我一直在处理很多旧的npm包,它们的依赖关系都是无序的。它们是收缩包装的包,因此更新依赖项是一项工作(测试并验证依赖项更改没有破坏任何内容),但我正在手动将一些依赖项从
devdependency
键移动到
dependencies
键,并且我不想做任何事情,除了在提交之前按字母顺序排列它们。与手动操作相比,有没有一种简单的方法可以通过npm以编程方式按字母顺序排列它们呢?

我发现,小麻烦是它从
package.json
文件中删除了尾随的换行符。

只需运行
npm-remove——保存任何内容
npm-remove——保存dev-where
,npm将对该部分进行排序,而不实际涉及任何内容。当然,您应该确保您传递的包名(可以是任何东西,可以是键盘上的垃圾邮件)不在您的包中。json。

排序不仅包括
依赖项
依赖项
,还包括其他键。我知道最初的问题没有问其他的钥匙,但是我认为把所有的钥匙都分类是很酷的

您只需运行:

npx sort-package-json
包页面中的示例:

$cd我的项目
$cat package.json
{
“依赖项”:{
“排序包json”:“1.0.0”,
“排序对象键”:“1.0.0”
},
“版本”:“1.0.0”,
“名称”:“我最棒的项目”
}
$npx排序包json
package.json已排序!
$cat package.json
{
“名称”:“我最棒的项目”,
“版本”:“1.0.0”,
“依赖项”:{
“排序对象键”:“1.0.0”,
“排序包json”:“1.0.0”
}
}

这不会删除后面的换行符,就像Wolfgang提到的
npm sort
包一样。

除了martias answer,您还可以运行:

npx sort-package-json

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

在VS代码中,对于整个json文件有一个很好的包排序器


还有一种叫做“sortier”的东西,它可以进行更多的排序,而且非常棒。

您可能还想看看CLI,它可以按照他们(稍微)坚持的顺序更新package.json。但是,您可以添加
.fixpackrc
来定义自己的规则,默认值为:

  • 先说出名字
  • 描述二
  • 第三版
  • 第四作者
  • 按字母顺序排列的所有其他键
  • 依字母顺序排序的依赖项和依赖项
  • 文件末尾的换行符

您可以使用文本编辑器对依赖项行进行排序吗?升华文本有内置的支持(编辑->排序行),IntelliJ有一个插件:一行:
npm-remove--save-example;npm remove——保存开发示例
Shorter:
npm remove-S示例;npm remove-D示例
我喜欢这种开发者不用依赖外部工具就能完成任务的方式(甚至更短:
npm r-S示例;npm r-D示例
r
rm
un
npm卸载
的最短默认别名)这比安装另一个依赖项要容易得多。如果您使用的是
npm>=5.2.0
,您只需运行
npx sort package json
,这个答案应该在顶部。这个包还将对package.json的
“scripts”
部分进行排序。这对某些人来说可能不可取。我认为这应该被提高投票率。sort package json对package.json中的所有内容进行排序,但npm排序仅对依赖项和依赖项进行排序。这可能是大多数用户需要的