如何列出 package.json 中可用的所有命令?

iga*_*rav 11 package-managers node.js npm package.json

Apackage.json可以有很多命令,常见的是npm startnpm test但通常有更多命令。

有没有办法列出所有命令?

目前我使用,less package.json但它有太多的噪音显示。

k0p*_*kus 26

您可以使用:

npm run
Run Code Online (Sandbox Code Playgroud)

列出所有命令。(Yarn 在 上也具有类似的功能yarn run。)

此行为在以下帮助页面中明确说明npm help run

This  runs an arbitrary command from a package's "scripts" object.  If no "command" is provided, it will list the available scripts.
Run Code Online (Sandbox Code Playgroud)

如果您安装了jq,要快速了解一下:

jq .scripts package.json
Run Code Online (Sandbox Code Playgroud)

less如果需要,您仍然可以将该子集传递给

jq .scripts package.json | less
Run Code Online (Sandbox Code Playgroud)

此外,您可以通过npm-completion使用选项卡完成,然后您应该在点击选项卡时看到可能的命令列表,如果只剩下一个选项,则完成命令。

您可以通过临时设置

source <(npm completion)
Run Code Online (Sandbox Code Playgroud)

根据您的终端,您可以通过添加到相关的配置文件来使其具有持久性:

npm completion >> ~/.bashrc
npm completion >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)


Yor*_*iev 7

我很惊讶没有人建议to_entries()jq 中的 func ,又名:

jq -r '.scripts|to_entries[]|((.key))' package.json
# output
lint
build:css
build:dev
build:node
build:release
Run Code Online (Sandbox Code Playgroud)

这基本上意味着:

  • 选择 package.json 文件的 .scripts 部分
  • 使用行输出 --r
  • 将 this 的对象转换为 .key .value 对
  • 仅显示按键