【问题标题】:Is there a way to alphabetize package.json without installing a package?有没有办法在不安装包的情况下按字母顺序排列 package.json?
【发布时间】:2016-03-30 01:16:19
【问题描述】:

我一直在研究许多旧的 npm 包,它们的依赖关系都乱了套。它们是压缩包,因此更新依赖项需要一些工作(测试和验证依赖项更改没有破坏任何内容),但我手动将一些依赖项从 devDependencies 键移动到 dependencies 键,我不想做任何事情,除了在我提交之前按字母顺序排列它们。有没有一种简单的方法可以使用 npm 以编程方式对它们进行字母排序,而不是手动进行?

【问题讨论】:

  • 你能用你的文本编辑器对依赖行进行排序吗? Sublime Text 有内置支持(Edit -> Sort Lines),IntelliJ 有一个插件:plugins.jetbrains.com/plugin/5919

标签: npm


【解决方案1】:

sort-package-json package 不仅对 dependenciesdevDependencies 进行排序,还对其他键进行排序。我知道最初的问题没有询问其他键,但我认为对所有键进行排序很酷。

你可以简单地运行:

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>=5.2.0,你可以简单地运行npx sort-package-json
【解决方案2】:

只需运行npm remove --save anythingnpm remove --save-dev whatever,npm 就会对该部分进行排序,而无需实际触及任何内容。当然你应该确保你传递给它的包名(可以是任何东西,键盘上的垃圾邮件)不在你的 package.json 中。

【讨论】:

  • 单线:npm remove --save example; npm remove --save-dev example
  • 短:npm remove -S example; npm remove -D example
  • 我喜欢这种无需依赖外部工具的开发者方式))
  • 甚至更短:npm r -S example; npm r -D examplerrmunnpm uninstall 的最短默认别名)
  • 这比安装另一个依赖项要容易得多。
【解决方案3】:

除了 martias 的答案,你可以运行:

npx sort-package-json

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

【讨论】:

  • 这个答案应该在上面
  • 这个包也会对 package.json 的 "scripts" 部分进行排序。这对某些人来说可能并不理想。
【解决方案4】:

我找到了npm-sort package,它似乎工作得很好,只是它从package.json 文件中删除了尾随换行符。

【讨论】:

  • 我认为这应该被赞成。 sort-package-json 对 package.json 中的所有内容进行排序,但 npm-sort 仅对依赖项和 devDependencies 进行排序。这可能是大多数用户需要的
【解决方案5】:

您可能还想查看fixpack,这是一个 CLI,用于按照他们(稍微)自以为是的顺序更新您的 package.json。但是,您可以添加 .fixpackrc 来定义您自己的规则,默认为:

  • 名字第一
  • 第二个描述
  • 第三版
  • 作者第四
  • 按字母顺序排列的所有其他键
  • dependencies 和 devDependencies 按字母顺序排序
  • 文件末尾的换行符

【讨论】:

    【解决方案6】:

    如果您使用 WebStorm,只需选择要排序的行并点击 Edit > Sort Lines

    但是对于VScode没有内部解决方案,所以使用这个插件https://marketplace.visualstudio.com/items?itemName=ue.alphabetical-sorter

    【讨论】:

      【解决方案7】:

      在 VS-code 中,有一个很好的 packagesorter ofr 整个 json 文件..

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        • 2010-09-12
        • 2012-10-15
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        相关资源
        最近更新 更多