有没有办法在不安装包的情况下按字母顺序包装package.json?

Jo *_*gue 52 npm

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

kar*_*arl 59

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

  • 更短:`npm remove -S example; npm remove -D example` (8认同)
  • 单行:`npm remove --save示例; npm remove --save-dev example` (4认同)
  • 这比安装另一个依赖项要容易得多。 (4认同)
  • 我喜欢这种开发人员的工作方式,而不必依赖某些外部工具)) (3认同)
  • 甚至更短:`npm r -S 示例;npm r -D example`(`r`、`rm` 和 `un` 是 `npm uninstall` 最短的默认别名) (2认同)

mar*_*ias 45

sort-package-json软件包不仅排序dependenciesdevDependencies,但其他键以及.我知道原始问题没有询问其他键,但我认为将所有键排序很酷.

包页面中的示例:

$ cd my-project

$ cat package.json
{
  "dependencies": {},
  "version": "1.0.0",
  "keywords": [
    "thing"
  ],
  "name": "foo"
}

$ npm i -g sort-package-json

$ sort-package-json
Ok, your package.json is sorted

$ cat package.json
{
  "name": "foo",
  "version": "1.0.0",
  "keywords": [
    "thing"
  ],
  "dependencies": {}
}
Run Code Online (Sandbox Code Playgroud)

这不会像npm-sortWolfgang提到的包那样删除尾随的换行符.

  • 如果你使用`npm> = 5.2.0`,你可以简单地运行`npx sort-package-json` (12认同)

Jul*_*ian 27

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

npx sort-package-json
Run Code Online (Sandbox Code Playgroud)

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

  • 该包还将对 package.json 的“scripts”部分进行排序。这对某些人来说可能并不理想。 (7认同)
  • 这个答案应该放在最前面 (2认同)

aze*_*ati 16

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

对于VSCode,突出显示行,打开命令面板(cmd+shift+p 或 ctrl+p)并搜索“升序排序行”


Wol*_*ang 5

我发现这个npm-sort看起来效果很好,并且轻微的一点就是它从package.json文件中删除了尾随的换行符.