Npm 有没有一种方法可以在不安装包的情况下按package.json的字母顺序排列?
我一直在处理很多旧的npm包,它们的依赖关系都是无序的。它们是收缩包装的包,因此更新依赖项是一项工作(测试并验证依赖项更改没有破坏任何内容),但我正在手动将一些依赖项从Npm 有没有一种方法可以在不安装包的情况下按package.json的字母顺序排列?,npm,Npm,我一直在处理很多旧的npm包,它们的依赖关系都是无序的。它们是收缩包装的包,因此更新依赖项是一项工作(测试并验证依赖项更改没有破坏任何内容),但我正在手动将一些依赖项从devdependency键移动到dependencies键,并且我不想做任何事情,除了在提交之前按字母顺序排列它们。与手动操作相比,有没有一种简单的方法可以通过npm以编程方式按字母顺序排列它们呢?我发现,小麻烦是它从package.json文件中删除了尾随的换行符。只需运行npm-remove——保存任何内容或npm-remo
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
来定义自己的规则,默认值为:
- 先说出名字
- 描述二
- 第三版
- 第四作者
- 按字母顺序排列的所有其他键
- 依字母顺序排序的依赖项和依赖项
- 文件末尾的换行符
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排序仅对依赖项和依赖项进行排序。这可能是大多数用户需要的