You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置npx运行npm包时触发的默认执行命令

如何修改npm包bin字段的默认执行命令

问题原因

调整bin对象内的键顺序无法生效,是因为npx的默认命令匹配逻辑不会参考bin对象的键排序,你之前多命令场景下仍默认执行command_1属于单命令配置遗留的缓存匹配逻辑,不是npm的标准行为。

解决方法

npm明确规定,当你需要npx <包名>可以直接执行指定默认命令时,只需在bin对象中添加一个和包名完全同名的key,指向你要作为默认入口的文件即可。
针对你的场景,修改package.json的bin字段如下即可:

{
  "name": "my-package",
  ....
  "main": "index.js",
  "bin": {
    "my-package": "./dist/lib/command_0.js",
    "command_0": "./dist/lib/command_0.js",
    "command_1": "./dist/lib/command_1.js",
    "command_2": "./dist/lib/command_2.js"
  },
  ...
}

配置完成后对应的执行逻辑为:

  • 运行npx my-package默认执行command_0.js
  • 运行npx -p my-package command_0、npx -p my-package command_1、npx -p my-package command_2仍然可以单独调用对应命令

注意事项

  • 配置更新后需要重新发布npm包,才会对新安装的用户生效
  • 本地测试时如果发现配置不生效,可以执行npx --clear清除npx本地缓存后再重试
  • 所有bin指向的JS文件头部需要添加#!/usr/bin/env node声明,否则执行时可能出现权限或解析错误

内容的提问来源于stack exchange,提问作者Picci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:54:03