我一直在处理很多旧的npm包,它们的依赖关系都是乱序的,它们是收缩 Package 的包,所以更新依赖关系有点麻烦(测试并验证依赖项更改没有破坏任何东西),但我手动将一些依赖项从devDependencies键移动到dependencies键,并且我不想做任何事情,除了在提交之前按字母顺序排列它们。除了手动操作,有没有一种简单的方法可以用npm编程地按字母顺序排列它们?
devDependencies
dependencies
62o28rlo1#
sort-package-json package不仅对dependencies和devDependencies进行排序,还对其他键进行排序,我知道最初的问题没有问其他键,但我认为对所有键进行排序很酷。您可以简单地运行:
sort-package-json
npx sort-package-json
程序包页面中的示例:
$ cd my-project $ cat package.json { "dependencies": { "sort-package-json": "1.0.0", "sort-object-keys": "1.0.0" }, "version": "1.0.0", "name": "my-awesome-project" } $ npx sort-package-json package.json is sorted! $ cat package.json { "name": "my-awesome-project", "version": "1.0.0", "dependencies": { "sort-object-keys": "1.0.0", "sort-package-json": "1.0.0" } }
这并不像Wolfgang提到的npm-sort包那样删除尾部换行符。
npm-sort
$ sort-package-json "my-package/package.json" "other-package/package.json" $ sort-package-json "package.json" "packages/*/package.json"
8e2ybdfx2#
只要运行npm remove --save anything或npm remove --save-dev whatever,npm就会对该部分进行排序,而实际上不涉及任何内容。当然,您应该确保传递给它的包名(可以是任何名称,也可以是垃圾键盘)不在package.json中。
npm remove --save anything
npm remove --save-dev whatever
khbbv19g3#
除了马蒂亚斯的回答,你可以只跑:
这不会永久安装它。你需要npm〉5.2。
mfuanj7w4#
我已经找到了npm-sort package,它似乎工作得很好,但有一个小问题,它从package.json文件中删除了尾随的换行符。
package.json
oyxsuwqo5#
如果您使用的是WebStorm,只需选择要排序的行,然后单击Edit > Sort Lines。但对于VScode没有内部解决方案,因此使用此插件https://marketplace.visualstudio.com/items?itemName=ue.alphabetical-sorter
Edit > Sort Lines
xe55xuns6#
您可能还想看看fixpack,它是一个CLI,用于按照它们(稍微)武断的顺序更新package.json。不过,您可以添加一个.fixpackrc来定义自己的规则,默认值为:
.fixpackrc
aiazj4mn7#
您只需从依赖项中删除或卸载不存在的软件包
npm remove kjkjhkjhkjhkj -f --save
或更短
npm r -S
其它解决方案是好的,但是具有一些缺点:1-对可能是不需要的行为的其他键进行排序2-安装外部软件包,例如sort-package-json,即使使用npx sort-package-json
r6l8ljro8#
在VS代码中,对整个json文件有一个很好的包分类器。还有一种叫做“sortier”的东西,它可以分类得更多,而且很棒。
8条答案
按热度按时间62o28rlo1#
sort-package-json
package不仅对dependencies
和devDependencies
进行排序,还对其他键进行排序,我知道最初的问题没有问其他键,但我认为对所有键进行排序很酷。您可以简单地运行:
程序包页面中的示例:
这并不像Wolfgang提到的
npm-sort
包那样删除尾部换行符。多个文件
8e2ybdfx2#
只要运行
npm remove --save anything
或npm remove --save-dev whatever
,npm就会对该部分进行排序,而实际上不涉及任何内容。当然,您应该确保传递给它的包名(可以是任何名称,也可以是垃圾键盘)不在package.json中。khbbv19g3#
除了马蒂亚斯的回答,你可以只跑:
这不会永久安装它。你需要npm〉5.2。
mfuanj7w4#
我已经找到了
npm-sort
package,它似乎工作得很好,但有一个小问题,它从package.json
文件中删除了尾随的换行符。oyxsuwqo5#
如果您使用的是WebStorm,只需选择要排序的行,然后单击
Edit > Sort Lines
。但对于VScode没有内部解决方案,因此使用此插件https://marketplace.visualstudio.com/items?itemName=ue.alphabetical-sorter
xe55xuns6#
您可能还想看看fixpack,它是一个CLI,用于按照它们(稍微)武断的顺序更新package.json。不过,您可以添加一个
.fixpackrc
来定义自己的规则,默认值为:aiazj4mn7#
您只需从依赖项中删除或卸载不存在的软件包
或更短
其它解决方案是好的,但是具有一些缺点:
1-对可能是不需要的行为的其他键进行排序
2-安装外部软件包,例如sort-package-json,即使使用
npx sort-package-json
r6l8ljro8#
在VS代码中,对整个json文件有一个很好的包分类器。
还有一种叫做“sortier”的东西,它可以分类得更多,而且很棒。