如何列出 package.json 中所有可用的命令?
How to list all the commands available in package.json?
一个package.json
可以有很多命令,常见的有npm start
、npm test
,但一般命令比较多。
有没有办法列出所有命令?
目前我使用less package.json
,但它有太多噪音无法显示。
您可以使用:
npm run
列出所有命令。 (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.
如果您安装了 jq,要获得快速概览:
jq .scripts package.json
如果需要
,您仍然可以将该子集通过管道传输到 less
jq .scripts package.json | less
此外,您可以通过 npm-completion 使用 Tab 补全功能,然后您应该会在点击 Tab 键时看到可能的命令列表,如果只剩下一个选项,则可以完成命令。
您可以通过
临时设置
source <(npm completion)
根据您的终端,您可以通过添加到相关的配置文件来使其持久化:
npm completion >> ~/.bashrc
npm completion >> ~/.zshrc
这是仅使用节点的极简方法!
仅列出可用命令。
node -e "console.log(Object.keys(require('.' + require('path').sep + 'package.json').scripts || {}))"
列出所有可用命令及其目标。
node -e "console.log(require('.' + require('path').sep + 'package.json').scripts || {})"
更进一步,你可以把它变成一个运行命令!
在 package.json
中将其添加到 scripts.
示例:
"scripts": {
"ls": "node -e \"console.log(require('.' + require('path').sep + 'package.json').scripts || {})\""
}
现在您可以 npm run ls
!
我很惊讶没有人在 jq 中建议 to_entries()
func,又名:
jq -r '.scripts|to_entries[]|((.key))' package.json
# output
lint
build:css
build:dev
build:node
build:release
这基本上意味着:
- 选择 package.json 文件的 .scripts 部分
- 使用行输出 -
-r
- 将 this 的对象转换为 .key .value 对
- 仅显示密钥
一个package.json
可以有很多命令,常见的有npm start
、npm test
,但一般命令比较多。
有没有办法列出所有命令?
目前我使用less package.json
,但它有太多噪音无法显示。
您可以使用:
npm run
列出所有命令。 (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.
如果您安装了 jq,要获得快速概览:
jq .scripts package.json
如果需要
,您仍然可以将该子集通过管道传输到less
jq .scripts package.json | less
此外,您可以通过 npm-completion 使用 Tab 补全功能,然后您应该会在点击 Tab 键时看到可能的命令列表,如果只剩下一个选项,则可以完成命令。
您可以通过
临时设置source <(npm completion)
根据您的终端,您可以通过添加到相关的配置文件来使其持久化:
npm completion >> ~/.bashrc
npm completion >> ~/.zshrc
这是仅使用节点的极简方法!
仅列出可用命令。
node -e "console.log(Object.keys(require('.' + require('path').sep + 'package.json').scripts || {}))"
列出所有可用命令及其目标。
node -e "console.log(require('.' + require('path').sep + 'package.json').scripts || {})"
更进一步,你可以把它变成一个运行命令!
在 package.json
中将其添加到 scripts.
示例:
"scripts": {
"ls": "node -e \"console.log(require('.' + require('path').sep + 'package.json').scripts || {})\""
}
现在您可以 npm run ls
!
我很惊讶没有人在 jq 中建议 to_entries()
func,又名:
jq -r '.scripts|to_entries[]|((.key))' package.json
# output
lint
build:css
build:dev
build:node
build:release
这基本上意味着:
- 选择 package.json 文件的 .scripts 部分
- 使用行输出 -
-r
- 将 this 的对象转换为 .key .value 对
- 仅显示密钥