我一直在处理许多旧的 npm 包,它们的依赖关系都是无序的。它们是收缩包装的包,所以更新依赖项是一项有点麻烦的工作(测试和验证依赖项的更改没有破坏任何东西) ,但是我正在手动将一些依赖项从 devDependencies键移动到 dependencies键,除了在提交之前按字母顺序排列它们之外,我不想做任何事情。有没有一种简单的方法可以使用 npm 以编程的方式按字母顺序排列它们,而不是手工完成?
devDependencies
dependencies
我发现了 npm-sort包裹,它似乎工作得非常好,只是有一点小麻烦,就是它从 package.json文件中删除了尾随的换行符。
npm-sort
package.json
只要运行 npm remove --save anything或 npm remove --save-dev whatever,npm 就会对该部分进行排序,而不会实际触及任何内容。当然,您应该确保您传递给它的包名(可以是任何名称,可以是垃圾邮件,也可以是您的键盘)不在 package.json 中。
npm remove --save anything
npm remove --save-dev whatever
该 sort-package-json包裹排序不仅 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包那样删除尾随的换行符。
$ sort-package-json "my-package/package.json" "other-package/package.json" $ sort-package-json "package.json" "packages/*/package.json"
除了马提亚斯的回答,你还可以直接跑:
这不会永久地安装它,需要 npm > 5.2。
in VS-code there's a good packagesorter ofr the whole json file..
there's also something out there called "sortier" which sorts more, and is awesome.
您可能还需要查看一下 补丁包,它是一个 CLI,用于按照(稍微)固定的顺序更新 package.json。然而,您可以添加一个 .fixpackrc来定义您自己的规则,默认值是:
.fixpackrc
如果使用 网络风暴,只需选择要排序的行并单击 Edit > Sort Lines。
Edit > Sort Lines
但是对于 VScode没有内部解决方案,所以使用这个插件 https://marketplace.visualstudio.com/items?itemName=ue.alphabetical-sorter
您可以简单地从依赖项中删除或卸载不存在的包
npm remove kjkjhkjhkjhkj -f --save
or shorter
npm r -S
其他解决方案是好的,但也有一些缺点: 1-对可能是不想要的行为的其他键进行排序 2-安装诸如 sort-package-json 之类的外部包,即使使用 npx sort-package-json也是如此