package.json中bin字段配置后全局安装二进制文件被重命名问题排查
问题原因与解决办法
这其实是npm处理bin字段的默认逻辑导致的,不是你配置出错了,只是没契合你想要的命名规则而已。
为什么会被重命名?
当你在package.json里把bin设为单一字符串(比如"bin": "bin/pkghas")时,npm会自动将全局可执行命令的名称设置为你package.json里name字段的值——也就是pkg-has,所以安装后二进制文件会被重命名成这个名字。
怎么修改成你想要的命令名?
要让全局命令名是pkghas,你需要把bin字段改成对象格式,明确指定命令名对应的文件路径:
{ "name": "pkg-has", // ...其他配置 "bin": { "pkghas": "bin/pkghas" } }
验证步骤
- 先卸载已安装的旧版本:
npm uninstall -g pkg-has - 重新全局安装你的模块:
npm install -g . - 现在运行
pkghas就能正常调用你的二进制文件了~
内容的提问来源于stack exchange,提问作者vdegenne
相关产品推荐
相关产品推荐

