我尝试通过 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 应用程序。 请帮助我。
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"
},
...
}