zsh:找不到命令(设置 package.json bin 并全局安装后)

问题描述 投票:0回答:1

我尝试通过 typescript 制作 cli 应用程序。 这是我的代码。

//package.json
{
  "name": "jihea-cli",
  "version": "1.0.0",
  "description": "",
  "main": "index.ts",
  "bin": {
    "cli": "./bin/index.ts"
  },
  "scripts": {
    "build": "npx tsc",
    "cli": "ts-node ./bin/index.ts"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^20.12.7"
  },
  "dependencies": {
    "ts-node": "^10.9.2"
  }
}

/bin/index.ts
#!/usr/bin/env node

console.log(`!!! Please enter a valid name for your new app.`);
process.exit(0);

我发布并安装全局。 我通过

npm ls -g
检查过。

Desktop (main*) » npm ls -g                                                                                                                                    ~/Desktop
/opt/homebrew/lib
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

但是如果我尝试

jihea-cli cli
,它不起作用。

zsh: command not found: jieha-cli

请帮助我。

我想制作可供全局安装使用的 cli 应用程序。 请帮助我。

node.js typescript npm zsh npm-publish
1个回答
0
投票

zsh:找不到命令:jieha-cli?

实际上它正在工作,只需在终端中运行它

cli

为什么?

这是

bin
package.json
字段中的一个简单错误,因为
bin
字段决定了本地或全局中的可执行文件的名称,例如全局
中的 
npx name
npm exec name
name

因此您将可执行文件命名为

cli

如果您有一个可执行文件,并且其名称应该是包的名称,那么您可以将其作为字符串提供。例如

{
  "name": "jihea-cli",
  "version": "1.0.1",
  "bin": "./bin/index.ts",
  ...
}

和这个一样

{
  "name": "jihea-cli",
  "version": "1.0.1",
  "bin": {
    "jihea-cli": "./bin/index.ts"
  },
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.